/*
Theme Name: Continental Table
Description: A custom block theme.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.5.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: continental-table
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

:root {
	--ct-base: #f3eee2;
	--ct-surface: #fdfbf5;
	--ct-contrast: #1f1d18;
	--ct-ink: #36322a;
	--ct-muted: #857c69;
	--ct-olive: #4e6742;
	--ct-olive-deep: #3c5133;
	--ct-olive-soft: #e3e7d6;
	--ct-ember: #c0552c;
	--ct-ember-deep: #a3461f;
	--ct-rule: #e0dac9;
}

/* === base === */
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.ct-eyebrow {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ct-olive);
	font-weight: 600;
}
.ct-eyebrow.is-muted { color: var(--ct-muted); }

/* === topbar === */
.ct-topbar {
	background: var(--ct-olive);
	color: #eef0e6;
}
.ct-topbar p {
	margin: 0;
	padding: 0.5rem 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.62rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	text-align: center;
	color: #dfe4d2;
}

/* === header === */
.ct-header {
	border-bottom: 1px solid var(--ct-rule);
	padding-block: 1.4rem;
}
.ct-brandwrap { align-items: center; }
.ct-logo { margin: 0; }
.ct-logo img,
.ct-logo .custom-logo {
	width: 84px;
	height: 84px;
	transition: transform 0.3s ease;
}
.ct-logo a:hover img { transform: scale(1.05) rotate(-2deg); }
.ct-header .ct-brand {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--ct-contrast);
	letter-spacing: 0.01em;
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.ct-header .ct-vol,
.ct-header .ct-tagline {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.6rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ct-muted);
}
.ct-nav a {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.82rem;
	color: var(--ct-ink);
	letter-spacing: 0.01em;
}
.ct-nav a:hover { color: var(--ct-olive); }
/* === topbar === */
/* === header === */
/* === hero === */
.ct-main { padding-block: 0; }
.ct-hero { margin-top: 1.5rem; }
.ct-hero-card {
	background: rgba(248, 245, 236, 0.95);
	box-shadow: 0 30px 70px rgba(20, 18, 14, 0.28);
}
.ct-hero-title {
	color: var(--ct-contrast);
	letter-spacing: -0.01em;
}
.ct-hero-sub {
	color: var(--ct-ink);
	font-size: 0.92rem;
	line-height: 1.6;
	max-width: 30rem;
	margin-inline: auto;
}
.ct-btn .wp-element-button {
	background: var(--ct-olive);
	color: #f3f1e7;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
	border-radius: 0;
	padding: 0.85rem 1.6rem;
	transition: background 0.25s ease;
}
.ct-btn .wp-element-button:hover {
	background: var(--ct-contrast);
}
/* === categories === */
.ct-cat-row { align-items: flex-start; gap: 1.5rem; }
.ct-cat-img { display: flex; justify-content: center; margin-bottom: 0.9rem; }
.ct-cat-img img {
	border-radius: 999px;
	box-shadow: 0 8px 20px rgba(20, 18, 14, 0.15);
}
.ct-cat-label {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 0.95rem;
	color: var(--ct-contrast);
	position: relative;
	padding-bottom: 0.7rem;
}
.ct-cat-label::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 26px;
	height: 2px;
	background: var(--ct-olive);
}
/* === trending === */
.ct-trending { border-top: 1px solid var(--ct-rule); }
.ct-trending-row { gap: 3.5rem; }
.ct-trending-title { color: var(--ct-contrast); max-width: 14ch; }
.ct-trending-text { color: var(--ct-ink); font-size: 0.95rem; max-width: 32ch; }
.ct-trending-img img {
	width: 100%;
	height: 420px;
	object-fit: cover;
	box-shadow: 0 24px 50px rgba(20, 18, 14, 0.25);
}
.ct-link a {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--ct-olive);
	border-bottom: 1px solid var(--ct-olive);
	padding-bottom: 3px;
}
.ct-link a:hover { color: var(--ct-contrast); border-color: var(--ct-contrast); }
/* === recipe-grid === */
.ct-recipes { border-top: 1px solid var(--ct-rule); }
.ct-recipes-head { margin-bottom: 3.5rem; }
.ct-recipes-head .ct-eyebrow { margin-bottom: 1rem; }
.ct-recipes-title { color: var(--ct-contrast); max-width: 16ch; }
.ct-recipes-intro { color: var(--ct-muted); font-size: 0.9rem; line-height: 1.6; }
.ct-recipe-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 2.5rem;
	row-gap: 3rem;
	align-items: start;
}
/* Neutralize WP block-gap top margin so every card top-aligns in its row */
.ct-recipe-grid > .ct-card { margin-top: 0; margin-bottom: 0; }
.ct-card {
	border-top: 1px solid var(--ct-rule);
	padding-top: 1.1rem;
}
.ct-card.ct-card-img {
	border-top: none;
	padding-top: 0;
}
.ct-card-loc {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ct-olive);
	font-weight: 600;
	margin-bottom: 0.4rem;
}
.ct-card-title {
	font-size: 1.35rem;
	line-height: 1.15;
	margin: 0 0 0.6rem;
	position: relative;
}
.ct-card-title a {
	color: var(--ct-contrast);
	display: block;
	transition: color 0.2s ease;
}
.ct-card-title a::after {
	content: "\2197";
	position: absolute;
	right: 0;
	top: 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.95rem;
	color: var(--ct-muted);
	transition: transform 0.2s ease, color 0.2s ease;
}
.ct-card-title a:hover { color: var(--ct-olive); }
.ct-card-title a:hover::after { color: var(--ct-olive); transform: translate(2px, -2px); }
.ct-card-meta {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	color: var(--ct-muted);
	display: flex;
	gap: 1.2rem;
	margin: 0;
}
.ct-card-meta .ct-time::before {
	content: "\1F551";
	font-size: 0.7rem;
	margin-right: 0.35rem;
	opacity: 0.7;
}
.ct-card-photo {
	margin: 0 0 1rem;
	width: 100%;
}
.ct-card-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
}
/* === quote === */
.ct-quote { background: transparent; }
.ct-quote-inner {
	background: var(--ct-olive-soft);
	padding: 3.5rem 2rem;
}
.ct-quote-title { color: var(--ct-contrast); }
.ct-quote-text {
	color: var(--ct-ink);
	font-size: 0.9rem;
	max-width: 36ch;
	margin-inline: auto;
}
/* === author === */
.ct-author { border-top: 1px solid var(--ct-rule); }
.ct-author-row { gap: 3.5rem; }
.ct-author-title { color: var(--ct-contrast); max-width: 14ch; margin-bottom: 1.4rem; }
.ct-author-lead { font-weight: 600; color: var(--ct-contrast); font-size: 0.95rem; }
.ct-author-body { color: var(--ct-ink); font-size: 0.9rem; line-height: 1.75; }
.ct-author-img img {
	width: 100%;
	height: 520px;
	object-fit: cover;
	box-shadow: 0 24px 50px rgba(20, 18, 14, 0.25);
}
/* === archive === */
.ct-arch-head { border-bottom: 1px solid var(--ct-rule); }
.ct-arch-title { color: var(--ct-contrast); }
.ct-arch-desc {
	color: var(--ct-muted);
	font-size: 0.95rem;
	max-width: 44ch;
	margin-inline: auto;
}
.ct-arch-grid {
	gap: 2.5rem 2.5rem;
	list-style: none;
	padding: 0;
}
.ct-arch-grid > li { margin: 0; }
.ct-arch-card-img { margin: 0 0 1.1rem; }
.ct-arch-card-img img {
	width: 100%;
	height: 220px;
	object-fit: cover;
}
.ct-arch-grid .ct-card-loc {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ct-olive);
	font-weight: 600;
	margin-bottom: 0.4rem;
}
.ct-arch-grid .ct-card-loc a { color: var(--ct-olive); text-decoration: none; }
.ct-arch-grid .ct-card-title { font-size: 1.35rem; margin: 0 0 0.6rem; }
.ct-arch-grid .ct-card-title a { color: var(--ct-contrast); }
.ct-arch-grid .ct-card-title a:hover { color: var(--ct-olive); }
.ct-arch-excerpt { color: var(--ct-ink); font-size: 0.85rem; line-height: 1.6; }
.ct-pagination {
	margin-top: 3.5rem;
	gap: 1rem;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.8rem;
}
.ct-pagination a, .ct-pagination .current { color: var(--ct-olive); }
@media (max-width: 781px) {
	.ct-arch-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
	.ct-arch-grid { grid-template-columns: 1fr !important; }
}

/* === single === */
/* === full-bleed post hero (single template) === */
.ct-post-hero {
	margin-top: 0;
	margin-bottom: 0;
	align-items: center;
	justify-content: center;
}
.ct-post-hero .wp-block-cover__inner-container {
	max-width: 760px;
	padding: 0 1.5rem;
	text-align: center;
}
.ct-post-hero .ct-ph-eyebrow,
.ct-post-hero .ct-ph-eyebrow a {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #d8e0c8;
	text-decoration: none;
	margin: 0 0 1.1rem;
}
.ct-post-hero .ct-ph-title {
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 800;
	font-size: clamp(2.2rem, 5.5vw, 4rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 auto 1.3rem;
	max-width: 18ch;
	text-wrap: balance;
}
.ct-post-hero .ct-ph-date {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.6);
	position: relative;
	padding-top: 1.2rem;
	margin: 0;
}
.ct-post-hero .ct-ph-date::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 40px;
	height: 2px;
	background: var(--ct-olive);
}
.ct-single .entry-content {
	margin-top: 3.5rem;
	max-width: 940px;
	margin-left: auto;
	margin-right: auto;
}
.ct-single .entry-content > :where(:not(.alignfull):not(.alignwide)) {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}
/* drop cap on the article lead */
.ct-single .entry-content > .ct-lead::first-letter {
	float: left;
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 800;
	font-style: normal;
	font-size: 4.6rem;
	line-height: 0.82;
	padding: 0.4rem 0.7rem 0 0;
	color: var(--ct-olive);
}
.ct-section-img {
	margin: 3rem 0;
	max-width: 720px;
}
.ct-section-img img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	max-height: 440px;
	object-fit: cover;
	border-radius: 3px;
}
.ct-download { margin: 1.8rem 0 0.5rem; }
.ct-download .wp-element-button {
	background: var(--ct-olive);
	color: #fff;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 600;
	padding: 0.85rem 1.6rem;
	border-radius: 2px;
	transition: background 0.2s ease, transform 0.2s ease;
}
.ct-download .wp-element-button:hover {
	background: var(--ct-contrast);
	transform: translateY(-1px);
}
.ct-lead {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.3rem;
	line-height: 1.5;
	color: var(--ct-contrast);
	font-style: italic;
}
.ct-recipe-meta {
	border-top: 1px solid var(--ct-rule);
	border-bottom: 1px solid var(--ct-rule);
	padding: 1.4rem 0;
	gap: 2.5rem;
}
.ct-meta-item { margin: 0; font-size: 0.85rem; color: var(--ct-ink); }
.ct-meta-item strong {
	display: block;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ct-olive);
	font-weight: 600;
	margin-bottom: 0.2rem;
}
.ct-h {
	font-size: 1.5rem;
	color: var(--ct-contrast);
	margin-top: 2.5rem;
}
.ct-list, .ct-steps { color: var(--ct-ink); font-size: 0.95rem; line-height: 1.8; }
.ct-steps li { margin-bottom: 0.6rem; }
.ct-steps { padding-left: 1.1rem; }
.ct-steps li::marker { color: var(--ct-olive); font-family: "Playfair Display", Georgia, serif; font-weight: 700; }

/* === smashburger blog layout === */
.ct-blog-hero {
	align-items: center;
	text-align: center;
	padding: 4.5rem 1.5rem;
	margin-bottom: 2.5rem;
}
.ct-blog-hero .wp-block-cover__inner-container { max-width: 640px; }
.ct-blog-kicker {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.66rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--ct-olive-light, #b7c4a0);
	margin: 0 0 1rem;
}
.ct-blog-title {
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 800;
	font-size: clamp(2rem, 5vw, 3.2rem);
	line-height: 1.08;
	color: #fff;
	margin: 0 auto 1rem;
	max-width: 16ch;
}
.ct-blog-sub {
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 1.05rem;
	color: rgba(255,255,255,0.72);
	max-width: 30ch;
	margin: 0 auto 1.4rem;
}
.ct-blog-metaline {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.45);
	margin: 0;
}
.ct-takeaways {
	background: var(--ct-olive-soft, #dfe4d2);
	border-left: 3px solid var(--ct-olive);
	border-radius: 0 6px 6px 0;
	padding: 1.6rem 1.8rem;
	margin: 2.5rem 0;
}
.ct-takeaways-h {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ct-contrast);
	margin: 0 0 0.8rem;
}
.ct-takeaways-list { list-style: none; padding: 0; margin: 0; }
.ct-takeaways-list li {
	position: relative;
	padding-left: 1.3rem;
	margin-bottom: 0.5rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--ct-ink);
}
.ct-takeaways-list li::before {
	content: "\2192";
	position: absolute;
	left: 0;
	color: var(--ct-olive);
	font-weight: 700;
}
.ct-blog-quote {
	border-left: 3px solid var(--ct-olive);
	margin: 2.2rem 0;
	padding: 0.3rem 0 0.3rem 1.6rem;
}
.ct-blog-quote p {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.35rem;
	line-height: 1.4;
	font-style: italic;
	color: var(--ct-olive);
	margin: 0;
}
.ct-tip {
	background: #fff;
	border: 1px solid var(--ct-rule);
	border-top: 3px solid var(--ct-olive);
	border-radius: 0 0 6px 6px;
	padding: 1.2rem 1.4rem;
	margin: 2rem 0;
}
.ct-tip-label {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ct-olive);
	margin: 0 0 0.3rem;
}
.ct-tip p:last-child { margin: 0; font-size: 0.95rem; }
.ct-swap-list { list-style: none; padding: 0; margin: 0.4rem 0 0; }
.ct-swap-list li {
	position: relative;
	padding: 0.5rem 0 0.5rem 1.5rem;
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--ct-ink);
	border-bottom: 1px solid var(--ct-rule);
}
.ct-swap-list li:last-child { border-bottom: none; }
.ct-swap-list li::before {
	content: "\2194";
	position: absolute;
	left: 0;
	top: 0.5rem;
	color: var(--ct-olive);
	font-weight: 700;
}
.ct-swap-note {
	font-size: 0.85rem !important;
	font-style: italic;
	color: var(--ct-muted);
	margin: 0.9rem 0 0 !important;
}
.ct-promove {
	font-style: italic;
	color: var(--ct-muted);
	font-size: 0.95rem;
	margin-top: 1.2rem;
}
.ct-blog-rule {
	border: none;
	border-top: 1px solid var(--ct-rule);
	margin: 3rem auto;
	max-width: 720px;
}
.ct-steps {
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
	margin: 1.6rem 0 2rem;
	padding-left: 0;
}
.ct-step {
	display: flex;
	gap: 1.1rem;
	align-items: flex-start;
	flex-wrap: nowrap;
}
.ct-step-num {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ct-olive);
	color: #fff;
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 700;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}
.ct-step-body { flex: 1 1 auto; }
.ct-step-body > * { margin-top: 0; }
.ct-step-label {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ct-muted);
	font-weight: 600;
	margin: 0 0 0.2rem;
}
.ct-step-body p:last-child { margin: 0; font-size: 0.95rem; line-height: 1.6; }
.ct-faq-item { margin: 0 0 1.4rem; }
.ct-faq-q {
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ct-contrast);
	margin: 0 0 0.35rem;
}
.ct-faq-a { font-size: 0.95rem; color: var(--ct-ink); margin: 0; }
.ct-cta {
	background: var(--ct-contrast);
	color: var(--ct-surface, #fbf9f2);
	text-align: center;
	padding: 2.8rem 2rem;
	border-radius: 8px;
	margin: 3.5rem 0 1rem;
	align-items: center;
}
.ct-cta-h { color: #fff; font-size: 1.5rem; margin: 0 0 0.6rem; }
.ct-cta-p {
	color: rgba(255,255,255,0.65);
	font-style: italic;
	font-size: 0.95rem;
	max-width: 34ch;
	margin: 0 auto 1.4rem;
}
.ct-cta .ct-download { margin: 0; display: flex; justify-content: center; }

/* === editorial article (pizza/culture) === */
.ct-post-cat {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ct-olive);
	margin: 0 0 0.4rem;
}
.ct-deck {
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.55;
	color: var(--ct-muted);
	margin: 0.4rem 0 1.4rem;
}
.ct-byline {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	color: var(--ct-muted);
	border-top: 1px solid var(--ct-rule);
	border-bottom: 1px solid var(--ct-rule);
	padding: 0.9rem 0;
	margin: 0 0 2rem;
}
.ct-quote-cite {
	font-family: Inter, system-ui, sans-serif !important;
	font-style: normal;
	font-size: 0.68rem !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ct-muted) !important;
	margin: 0.6rem 0 0 !important;
}
.ct-subh {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ct-olive);
	margin: 2.2rem 0 0.6rem;
}
.ct-divider-orn {
	text-align: center;
	color: var(--ct-olive);
	font-size: 1.1rem;
	letter-spacing: 0.3em;
	margin: 2.8rem 0;
}
.ct-tags {
	gap: 0.5rem;
	margin-top: 2.5rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--ct-rule);
}
.ct-tag {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	color: var(--ct-ink);
	padding: 0.35rem 0.85rem;
	border: 1px solid var(--ct-rule);
	border-radius: 999px;
	margin: 0;
}

/* === footer === */
.ct-footer {
	border-top: 1px solid var(--ct-rule);
}
.ct-footer .ct-brand {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.2rem;
	color: var(--ct-contrast);
}
.ct-footer-brand { align-items: center; }
.ct-footer-logo { margin: 0; }
.ct-footer-logo img, .ct-footer-logo .custom-logo { width: 44px; height: 44px; }
/* === motion === */
.ct-reveal {
	opacity: 1;
	transform: none;
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.ct-reveal.is-pending {
	opacity: 0;
	transform: translateY(28px);
}
.ct-stagger > * {
	opacity: 1;
	transform: none;
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.ct-stagger.is-pending > * {
	opacity: 0;
	transform: translateY(26px);
}
.ct-stagger.is-revealing > * { opacity: 1; transform: none; }
.ct-stagger.is-revealing > :nth-child(1) { transition-delay: 0.02s; }
.ct-stagger.is-revealing > :nth-child(2) { transition-delay: 0.07s; }
.ct-stagger.is-revealing > :nth-child(3) { transition-delay: 0.12s; }
.ct-stagger.is-revealing > :nth-child(4) { transition-delay: 0.17s; }
.ct-stagger.is-revealing > :nth-child(5) { transition-delay: 0.06s; }
.ct-stagger.is-revealing > :nth-child(6) { transition-delay: 0.11s; }
.ct-stagger.is-revealing > :nth-child(7) { transition-delay: 0.16s; }
.ct-stagger.is-revealing > :nth-child(8) { transition-delay: 0.08s; }
.ct-stagger.is-revealing > :nth-child(9) { transition-delay: 0.13s; }
.ct-stagger.is-revealing > :nth-child(n+10) { transition-delay: 0.18s; }
@media (prefers-reduced-motion: reduce) {
	.ct-reveal, .ct-reveal.is-pending,
	.ct-stagger > *, .ct-stagger.is-pending > * {
		opacity: 1 !important; transform: none !important; transition: none !important;
	}
	.ct-hero-title, .ct-hero-sub, .ct-hero .ct-eyebrow, .ct-hero .wp-block-buttons {
		animation: none !important;
	}
	html { scroll-behavior: auto; }
}
html { scroll-behavior: smooth; }
/* === hero entrance === */
@keyframes ct-rise {
	from { opacity: 0; transform: translateY(26px); }
	to { opacity: 1; transform: none; }
}
.ct-hero .ct-eyebrow { animation: ct-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both; }
.ct-hero-title { animation: ct-rise 1s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both; }
.ct-hero-sub { animation: ct-rise 1s cubic-bezier(0.22, 1, 0.36, 1) 0.36s both; }
.ct-hero .wp-block-buttons { animation: ct-rise 1s cubic-bezier(0.22, 1, 0.36, 1) 0.5s both; }
.ct-hero img.wp-block-cover__image-background {
	animation: ct-kenburns 18s ease-out both;
}
@keyframes ct-kenburns {
	from { transform: scale(1.08); }
	to { transform: scale(1); }
}
/* === hover polish === */
.ct-card-photo { overflow: hidden; border-radius: 3px; }
.ct-card-photo img { transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.ct-card:hover .ct-card-photo img { transform: scale(1.06); }
.ct-card-img { transition: transform 0.4s ease; }
.ct-card-img:hover { transform: translateY(-4px); }
.ct-cat-img { overflow: hidden; }
.ct-cat-img img { transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.ct-cat-img:hover img { transform: scale(1.1); }
.ct-trending-img, .ct-author-img, .ct-single-img, .ct-section-img { overflow: hidden; }
.ct-trending-img img, .ct-author-img img {
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.ct-trending-img:hover img, .ct-author-img:hover img { transform: scale(1.04); }
.ct-link a, .ct-cat-label, .ct-nav a {
	background-image: linear-gradient(var(--ct-olive), var(--ct-olive));
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease;
	padding-bottom: 2px;
}
.ct-link a:hover, .ct-nav a:hover { background-size: 100% 1px; }
.ct-btn .wp-element-button { transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease; }
.ct-btn .wp-element-button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -12px rgba(38, 34, 28, 0.5); }
@media (prefers-reduced-motion: reduce) {
	.ct-card-photo img, .ct-cat-img img, .ct-trending-img img, .ct-author-img img,
	.ct-card-img, .ct-btn .wp-element-button {
		transition: none !important; transform: none !important; animation: none !important;
	}
	.ct-hero img.wp-block-cover__image-background { animation: none !important; }
}
/* === responsive === */
@media (max-width: 781px) {
	.ct-header .ct-vol { display: none; }
	.ct-trending-row, .ct-author-row { gap: 2rem; }
	.ct-trending-img img, .ct-author-img img { height: 320px; }
	.ct-recipe-grid { grid-template-columns: repeat(2, 1fr); column-gap: 1.5rem; }
	.ct-recipes-head { margin-bottom: 2rem; }
	.ct-quote-inner { padding: 2.5rem 1.4rem; }
}
@media (max-width: 600px) {
	.ct-cat-row { flex-wrap: wrap; }
	.ct-cat-row .wp-block-column { flex-basis: 40% !important; }
	.ct-recipe-grid { grid-template-columns: 1fr; row-gap: 2.5rem; }
}

/* === Reader-friendly motion & UX (CT) ============================== */

/* Smooth, calm in-page scrolling for the nav + "Start Cooking" links */
html { scroll-behavior: smooth; }
:where(#trending, #recipes, #cravings) { scroll-margin-top: 24px; }

/* Lighter, less-heavy scroll reveals (shorter travel, quicker settle) */
.ct-reveal { transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.ct-reveal.is-pending { transform: translateY(18px); }
.ct-stagger > * { transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
.ct-stagger.is-pending > * { transform: translateY(16px); }

/* Mobile: drop fixed-attachment parallax (janky on phones) so the hero
   scrolls cleanly, and keep text crisp over the image */
@media (max-width: 781px) {
  .ct-hero .wp-block-cover__image-background.has-parallax,
  .ct-hero .wp-block-cover__image-background {
    background-attachment: scroll !important;
    background-position: 50% 50% !important;
  }
}

/* Honour reduced-motion for everything added here */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}


/* ================================================================
   OLIVE & EMBER RESTYLE  (brand olive #4e6742 + ember accent)
   ================================================================ */

/* --- Display type: Fraunces optical sizing --- */
.wp-block-heading { font-variation-settings: "opsz" 72, "SOFT" 0, "WONK" 0; letter-spacing: -0.012em; }
.ct-hero-title { font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0; font-weight: 600; letter-spacing: -0.02em; }
.ct-trending-title, .ct-recipes-title, .ct-author-title, .ct-quote-title {
	font-variation-settings: "opsz" 110, "SOFT" 0, "WONK" 0; font-weight: 580;
}
.ct-card-title, .ct-card-title a { font-variation-settings: "opsz" 34, "SOFT" 0, "WONK" 0; font-weight: 560; letter-spacing: -0.005em; }

/* --- Eyebrow: ember tick signature --- */
.ct-eyebrow::before {
	content: ""; display: inline-block; width: 1.7rem; height: 2px;
	background: var(--ct-ember); vertical-align: middle; margin-right: 0.6rem;
	transform: translateY(-0.12em);
}

/* --- Hero: late-night char mood, light type, ember CTA --- */
.ct-hero .wp-block-cover__background { background-color: #1c1a16 !important; opacity: 0.56 !important; }
.ct-hero-card { background: transparent !important; }
.ct-hero .ct-eyebrow { color: #efe7d3; }
.ct-hero-title { color: #fdfaf2; text-shadow: 0 1px 28px rgba(15,13,10,0.35); }
.ct-hero-sub { color: #ece4d3; }

/* --- Buttons: ember primary --- */
.ct-btn .wp-element-button {
	background: var(--ct-ember) !important; color: #fff7ef !important;
	font-weight: 600; letter-spacing: 0.01em;
}
.ct-btn .wp-element-button:hover { background: var(--ct-ember-deep) !important; color: #fff !important; }

/* --- Links in brand ember --- */
.ct-link a { color: var(--ct-ember); }
.ct-link a:hover { color: var(--ct-ember-deep); border-color: var(--ct-ember-deep); }
.ct-trending-title { color: var(--ct-contrast); }

/* --- Recipe cards: cleaner frame, ember-on-hover title, icon meta --- */
.ct-card { transition: transform 0.3s ease, box-shadow 0.3s ease; border-radius: 16px; }
.ct-card:hover { transform: translateY(-5px); box-shadow: 0 18px 36px -22px rgba(31,29,24,0.55); }
.ct-card-loc { color: var(--ct-olive); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.64rem; }
.ct-card-title a { color: var(--ct-contrast); transition: color 0.2s ease; }
.ct-card-title a:hover { color: var(--ct-ember); }
.ct-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; color: var(--ct-muted); font-size: 0.82rem; }
.ct-card-meta .ct-time, .ct-card-meta .ct-diff { display: inline-flex; align-items: center; gap: 0.38rem; }
.ct-card-meta .ct-time::before {
	content: ""; width: 14px; height: 14px; flex: 0 0 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234e6742' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center/contain no-repeat;
}
.ct-card-meta .ct-diff::before {
	content: ""; width: 14px; height: 14px; flex: 0 0 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c0552c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* --- Category thumbs: olive ring on hover --- */
.ct-cat-img img { transition: transform 0.5s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s ease; }
.ct-cat-img:hover img { box-shadow: 0 0 0 3px var(--ct-olive-soft), 0 0 0 4px var(--ct-olive); }
.ct-cat-label { color: var(--ct-ink); font-weight: 600; }

/* --- Pull-quote: olive band signature --- */
.ct-quote-inner {
	background: var(--ct-olive-deep); color: #f1ede0;
	padding: clamp(2.4rem, 1.5rem + 3vw, 3.6rem) clamp(1.6rem, 1rem + 2vw, 3rem);
	position: relative; overflow: hidden;
}
.ct-quote-inner::before {
	content: "\201C"; position: absolute; top: -0.35em; left: 0.32em;
	font-family: "Fraunces", Georgia, serif; font-size: 8rem; line-height: 1;
	color: var(--ct-ember); opacity: 0.85; pointer-events: none;
}
.ct-quote-inner .ct-eyebrow { color: #cdd6bd; }
.ct-quote-title { color: #fdfaf2; }
.ct-quote-text { color: #e6e1d2; }

/* --- Author block accents --- */
.ct-author-title { color: var(--ct-contrast); }
.ct-author-lead { color: var(--ct-olive); font-weight: 600; }

.ct-topbar { background: var(--ct-olive); }

@media (max-width: 600px) {
	.ct-quote-inner::before { font-size: 5.5rem; }
}


/* ================================================================
   NAVIGATION MENU RESTYLE (Olive & Ember)
   ================================================================ */

.ct-nav { gap: 1.9rem; }
.ct-nav a {
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ct-ink);
}
/* ember underline (overrides the olive gradient defined earlier) */
.ct-nav a { background-image: linear-gradient(var(--ct-ember), var(--ct-ember)); }
.ct-nav a:hover,
.ct-nav .current-menu-item > a,
.ct-nav a[aria-current="page"] {
	color: var(--ct-olive-deep);
	background-size: 100% 2px;
}

/* hamburger + close buttons */
.ct-nav .wp-block-navigation__responsive-container-open,
.ct-nav .wp-block-navigation__responsive-container-close { color: var(--ct-olive); }

/* full-screen mobile overlay menu */
.ct-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--ct-base);
	padding: 2.5rem 1.5rem;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: center;
	justify-content: center;
	gap: 1.4rem;
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open a {
	font-family: "Fraunces", Georgia, serif;
	font-variation-settings: "opsz" 80, "SOFT" 0, "WONK" 0;
	font-size: 1.9rem;
	font-weight: 560;
	text-transform: none;
	letter-spacing: -0.01em;
	color: var(--ct-contrast);
	background-image: linear-gradient(var(--ct-ember), var(--ct-ember));
}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open a:hover { color: var(--ct-ember); }
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: var(--ct-contrast); }


/* ================================================================
   CATEGORY TILES — uniform square images + mobile 2-up
   ================================================================ */
.ct-cat-img { width: 100%; max-width: 190px; margin-left: auto; margin-right: auto; }
.ct-cat-img img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
@media (max-width: 781px) {
	.ct-cat-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2rem 1.4rem !important; }
	.ct-cat-img { max-width: 160px; }
}


/* ================================================================
   FIX: uniform recipe-card images + smaller category tiles
   ================================================================ */
.ct-card-photo img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3 !important;
	object-fit: cover !important;
	object-position: center !important;
}
.ct-card-photo { width: 100% !important; }

.ct-cat-img { max-width: 150px !important; }
@media (max-width: 781px) {
	.ct-cat-img { max-width: 126px !important; }
}


/* ================================================================
   FIX v2: bulletproof uniform recipe-card images (mobile-safe)
   Ratio lives on the container; image fills it absolutely.
   ================================================================ */
.ct-card-photo {
	position: relative !important;
	width: 100% !important;
	aspect-ratio: 4 / 3 !important;
	overflow: hidden;
	margin: 0 0 1rem;
}
.ct-card-photo > a { display: block; width: 100%; height: 100%; }
.ct-card-photo img {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	aspect-ratio: auto !important;
	object-fit: cover !important;
	object-position: center !important;
}


/* ================================================================
   HEADER REFINEMENT — balanced, vertically centered, tidy spacing
   ================================================================ */
.ct-header { padding-block: 1.15rem; }

/* vertically center the three columns */
.ct-header > .wp-block-group,
.ct-header .wp-block-group.alignwide { align-items: center !important; }

/* balance columns so the logo sits dead-centre */
.ct-header .ct-vol { flex: 1 1 0 !important; margin: 0 !important; }
.ct-header .ct-nav  { flex: 1 1 0 !important; justify-content: flex-end !important; }
.ct-brandwrap { flex: 0 0 auto !important; align-items: center !important; gap: 0.32rem !important; }

/* compact logo */
.ct-logo img, .ct-logo .custom-logo { width: 58px !important; height: 58px !important; }

/* clean wordmark under the logo */
.ct-header .ct-brand {
	position: absolute !important;
	width: 1px !important; height: 1px !important;
	clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; overflow: hidden !important;
	margin: 0 !important;
	font-family: "Fraunces", Georgia, serif !important;
	font-variation-settings: "opsz" 40, "SOFT" 0, "WONK" 0;
	font-size: 0.92rem !important;
	font-weight: 540 !important;
	letter-spacing: 0.012em !important;
	line-height: 1 !important;
	white-space: nowrap;
	color: var(--ct-contrast) !important;
}
.ct-header .ct-brand a { color: inherit !important; text-decoration: none !important; }

/* tidy side label */
.ct-header .ct-vol {
	font-size: 0.62rem !important;
	letter-spacing: 0.22em !important;
	color: var(--ct-muted) !important;
	white-space: nowrap;
}


/* ================================================================
   BLOG POST (single) COMPONENTS — Olive & Ember
   ================================================================ */
.ct-single .wp-block-post-content { font-size: 1.05rem; }
.ct-single .ct-lead { font-family: "Fraunces", Georgia, serif; font-size: 1.25rem; line-height: 1.6; color: var(--ct-ink); font-weight: 400; margin-bottom: 1.6rem; }
.ct-single .wp-block-post-content > p { margin: 0 0 1.3rem; }
.ct-single .wp-block-post-content h2.wp-block-heading { margin-top: 2.6rem; margin-bottom: 0.8rem; }

/* key takeaways */
.ct-takeaways { background: var(--ct-olive-soft); border-left: 4px solid var(--ct-olive); border-radius: 14px; padding: 1.7rem 1.9rem; margin: 2.6rem 0; }
.ct-takeaways-title { font-family: Inter, system-ui, sans-serif; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ct-olive-deep); font-weight: 700; margin: 0 0 1rem; }
.ct-takeaways ul { margin: 0; padding: 0; list-style: none; }
.ct-takeaways li { position: relative; padding-left: 1.5rem; margin-bottom: 0.7rem; line-height: 1.55; color: var(--ct-ink); font-size: 0.98rem; }
.ct-takeaways li:last-child { margin-bottom: 0; }
.ct-takeaways li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 0.5rem; height: 0.5rem; background: var(--ct-ember); border-radius: 50%; }

/* pull quote */
.ct-single .ct-pull { border-left: 4px solid var(--ct-ember); padding: 0.2rem 0 0.2rem 1.6rem; margin: 2.2rem 0; font-family: "Fraunces", Georgia, serif; font-size: 1.4rem; font-style: italic; line-height: 1.42; color: var(--ct-olive-deep); }

/* post images */
.ct-single .ct-post-img { margin: 2.4rem 0; }
.ct-single .ct-post-img img { border-radius: 12px; width: 100%; height: auto; }
.ct-single .ct-post-img figcaption { margin-top: 0.6rem; font-size: 0.8rem; color: var(--ct-muted); text-align: center; font-style: italic; }

/* download CTA */
.ct-download { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; justify-content: space-between; background: var(--ct-surface); border: 1px solid var(--ct-rule); border-radius: 14px; padding: 1.4rem 1.7rem; margin: 2.6rem 0; }
.ct-download-text strong { display: block; font-family: "Fraunces", Georgia, serif; font-size: 1.15rem; color: var(--ct-contrast); }
.ct-download-text span { font-size: 0.85rem; color: var(--ct-muted); }
.ct-download-btn { background: var(--ct-ember); color: #fff7ef; font-family: Inter, system-ui, sans-serif; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.8rem 1.45rem; border-radius: 8px; text-decoration: none; transition: background 0.2s ease; white-space: nowrap; }
.ct-download-btn:hover { background: var(--ct-ember-deep); color: #fff; }

/* FAQ */
.ct-faq { margin: 2.8rem 0; }
.ct-faq-title { font-family: "Fraunces", Georgia, serif; font-size: 1.7rem; color: var(--ct-contrast); margin: 0 0 1rem; }
.ct-faq-item { border-top: 1px solid var(--ct-rule); padding: 1.1rem 0; }
.ct-faq-item:last-child { border-bottom: 1px solid var(--ct-rule); }
.ct-faq-item h3 { font-family: "Fraunces", Georgia, serif; font-size: 1.12rem; color: var(--ct-olive-deep); margin: 0 0 0.4rem; }
.ct-faq-item p { color: var(--ct-ink); line-height: 1.6; margin: 0; font-size: 0.97rem; }

/* tags */
.ct-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 2.6rem 0 0; }
.ct-tags-label { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ct-muted); margin-right: 0.3rem; }
.ct-tag { font-size: 0.78rem; color: var(--ct-olive-deep); background: var(--ct-olive-soft); padding: 0.35rem 0.85rem; border-radius: 999px; text-decoration: none; transition: all 0.2s ease; }
.ct-tag:hover { background: var(--ct-olive); color: #fff; }

@media (max-width: 600px) {
	.ct-download { flex-direction: column; align-items: flex-start; }
}


/* ================================================================
   BLOG TEMPLATE — recipe card + nutrition note (Olive & Ember)
   ================================================================ */
.ct-table-wrap{margin:2.4rem 0;overflow-x:auto;border-radius:14px;border:1px solid var(--ct-rule,#e0dac9);-webkit-overflow-scrolling:touch;}
.ct-table{width:100%;border-collapse:collapse;font-family:Inter,system-ui,sans-serif;font-size:0.94rem;min-width:440px;}
.ct-table thead th{background:linear-gradient(135deg,var(--ct-olive,#4e6742) 0%,var(--ct-ember,#c0552c) 100%);color:#fff;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:700;padding:0.9rem 1.1rem;text-align:left;}
.ct-table tbody td{padding:0.85rem 1.1rem;border-top:1px solid var(--ct-rule,#e0dac9);color:var(--ct-ink,#36322a);line-height:1.45;vertical-align:top;}
.ct-table tbody tr:nth-child(even){background:var(--ct-surface,#fbf8f1);}
.ct-table tbody td:first-child{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--ct-olive-deep,#3c5133);white-space:nowrap;}
.ct-table .yes{color:var(--ct-olive,#4e6742);font-weight:700;}
.ct-table .no{color:var(--ct-ember,#c0552c);font-weight:700;}
.ct-cat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.4rem;align-items:start;}
.ct-cat-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.55rem;text-decoration:none;background:none;border:none;box-shadow:none;}
.ct-cat-thumb{width:122px;height:122px;max-width:100%;border-radius:50%;overflow:hidden;box-shadow:0 8px 20px rgba(20,18,14,.14);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;}
.ct-cat-tile:hover .ct-cat-thumb{transform:translateY(-4px);box-shadow:0 0 0 3px var(--ct-olive-soft,#e3e7d6),0 0 0 4px var(--ct-olive,#4e6742);}
.ct-cat-thumb img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.ct-cat-tile:hover .ct-cat-thumb img{transform:scale(1.08);}
.ct-cat-name{font-family:"Fraunces",Georgia,serif;font-size:1rem;font-weight:600;color:var(--ct-charcoal,#1f1d18);line-height:1.2;}
.ct-cat-more{font-family:Inter,system-ui,sans-serif;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ct-ember,#c0552c);}
.ct-cat-more::after{content:" \2192";}
@media(max-width:880px){.ct-cat-grid{gap:1rem;}.ct-cat-thumb{width:80px;height:80px;}.ct-cat-name{font-size:.86rem;}}
@media(max-width:560px){.ct-cat-grid{gap:.55rem;}.ct-cat-thumb{width:56px;height:56px;}.ct-cat-name{font-size:.7rem;line-height:1.15;}.ct-cat-more{display:none;}}
.ct-recipe-box{border:1px solid var(--ct-rule,#e0dac9);border-radius:16px;overflow:hidden;margin:2.8rem 0;background:var(--ct-surface,#fbf8f1);}
.ct-recipe-box .rb-head{background:var(--ct-olive,#4e6742);padding:1.5rem 1.8rem;}
.ct-recipe-box .rb-head--media{display:flex;gap:1.6rem;align-items:center;}
.ct-recipe-box .rb-head-text{flex:1 1 58%;min-width:0;}
.ct-recipe-box .rb-head-img{flex:0 0 38%;align-self:stretch;display:flex;}
.ct-recipe-box .rb-head-img img{width:100%;height:100%;min-height:150px;max-height:190px;object-fit:cover;border-radius:12px;display:block;}
@media(max-width:600px){.ct-recipe-box .rb-head--media{flex-direction:column;align-items:stretch;gap:1.1rem;}.ct-recipe-box .rb-head-img img{max-height:210px;}}
.ct-recipe-box .rb-eyebrow{font-family:Inter,system-ui,sans-serif;font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--ct-sage,#e3e7d6);opacity:.9;margin:0 0 .4rem;}
.ct-recipe-box .rb-title{font-family:"Fraunces",Georgia,serif;font-size:1.6rem;line-height:1.15;margin:0;color:#fff;}
.ct-recipe-box .rb-meta{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1rem;}
.ct-recipe-box .rb-meta>div{display:flex;flex-direction:column;}
.ct-recipe-box .rb-meta .l{font-size:0.6rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ct-sage,#e3e7d6);opacity:.85;}
.ct-recipe-box .rb-meta .v{font-family:"Fraunces",Georgia,serif;font-size:1rem;color:#fff;}
.ct-recipe-box .rb-body{padding:1.6rem 1.8rem;}
.ct-recipe-box .rb-sect{font-family:Inter,system-ui,sans-serif;font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ct-ember,#c0552c);font-weight:700;margin:1.6rem 0 .9rem;}
.ct-recipe-box .rb-sect:first-child{margin-top:0;}
.ct-recipe-box .rb-ing{display:grid;grid-template-columns:1fr 1fr;gap:0.4rem 2rem;}
.ct-recipe-box .rb-ing h4{font-family:"Fraunces",Georgia,serif;font-size:1rem;color:var(--ct-olive-deep,#3c5133);margin:.6rem 0 .5rem;}
.ct-recipe-box .rb-ing ul{margin:0 0 .6rem;padding:0;list-style:none;}
.ct-recipe-box .rb-ing li{position:relative;padding-left:1.1rem;margin-bottom:.4rem;font-size:0.92rem;line-height:1.45;color:var(--ct-ink,#36322a);}
.ct-recipe-box .rb-ing li::before{content:"";position:absolute;left:0;top:.6em;width:.4rem;height:.4rem;background:var(--ct-olive,#4e6742);border-radius:50%;}
.ct-recipe-box .rb-steps{margin:0;padding:0;list-style:none;counter-reset:rb;}
.ct-recipe-box .rb-steps li{position:relative;padding-left:2.5rem;margin-bottom:1rem;line-height:1.6;color:var(--ct-ink,#36322a);font-size:0.96rem;counter-increment:rb;}
.ct-recipe-box .rb-steps li::before{content:counter(rb);position:absolute;left:0;top:.1rem;width:1.7rem;height:1.7rem;background:var(--ct-ember,#c0552c);color:#fff7ef;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Inter,system-ui,sans-serif;font-size:0.8rem;font-weight:700;}
@media(max-width:600px){.ct-recipe-box .rb-ing{grid-template-columns:1fr;}}

/* nutrition / smart-swaps note */
.ct-note{background:var(--ct-surface,#fbf8f1);border:1px solid var(--ct-rule,#e0dac9);border-left:4px solid var(--ct-ember,#c0552c);border-radius:14px;padding:1.6rem 1.8rem;margin:2.6rem 0;}
.ct-note .nt-eyebrow{font-family:Inter,system-ui,sans-serif;font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ct-ember,#c0552c);font-weight:700;margin:0 0 .4rem;}
.ct-note h3{font-family:"Fraunces",Georgia,serif;font-size:1.25rem;color:var(--ct-contrast,#1f1d18);margin:0 0 .7rem;}
.ct-note p{margin:0 0 .8rem;color:var(--ct-ink,#36322a);font-size:0.97rem;line-height:1.6;}
.ct-note ul{margin:0;padding:0;list-style:none;}
.ct-note li{position:relative;padding-left:1.4rem;margin-bottom:.6rem;line-height:1.55;color:var(--ct-ink,#36322a);font-size:0.94rem;}
.ct-note li:last-child{margin-bottom:0;}
.ct-note li::before{content:"";position:absolute;left:0;top:.55em;width:.45rem;height:.45rem;background:var(--ct-ember,#c0552c);border-radius:50%;}
.ct-trending-img img{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto;display:block;border-radius:15px;}

.ct-viewall-wrap{text-align:center;margin-top:2.6rem;}
.ct-viewall{display:inline-block;font-family:Inter,system-ui,sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--ct-ember,#c0552c);padding:.85rem 2.1rem;border-radius:999px;text-decoration:none;transition:transform .3s ease,background .3s ease;box-shadow:0 8px 20px rgba(192,85,44,.22);}
.ct-viewall:hover{transform:translateY(-2px);background:var(--ct-olive,#4e6742);}

/* CT archive card polish */
.ct-arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2.2rem 1.8rem;}
.ct-arch-grid > li{display:flex;flex-direction:column;margin:0;}
.ct-arch-card-img{margin:0 0 1rem;overflow:hidden;border-radius:16px;box-shadow:0 8px 22px rgba(20,18,14,.10);}
.ct-arch-card-img a,.ct-arch-card-img{display:block;}
.ct-arch-card-img img{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;display:block;border-radius:16px;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.ct-arch-card-img:hover img{transform:scale(1.05);}
.ct-arch-grid .ct-card-title{font-size:1.2rem;line-height:1.2;margin:.15rem 0 .5rem;}
.ct-arch-grid .ct-card-title a{padding-right:0;}
.ct-arch-grid .ct-card-title a::after{display:none;}
.ct-arch-excerpt{color:var(--ct-muted,#857c69);font-size:.82rem;line-height:1.55;margin:0;}
@media(max-width:560px){.ct-arch-grid{grid-template-columns:1fr;gap:1.6rem;}.ct-arch-card-img img{aspect-ratio:16/10;}}

/* CT social comments */
.wp-block-comments{max-width:760px;margin:3rem auto 0;background:#fff;border:1px solid var(--ct-rule,#e0dac9);border-radius:20px;padding:2rem 2rem 2.2rem;box-shadow:0 10px 30px rgba(20,18,14,.06);}
.wp-block-comments .wp-block-comments-title{font-family:Fraunces,Georgia,serif;font-size:1.5rem;margin:0 0 1.5rem;color:var(--ct-charcoal,#1f1d18);}
.wp-block-comment-template{list-style:none;margin:0;padding:0;}
.wp-block-comment-template li{margin:0 0 1.1rem;}
.wp-block-comment-template ol{list-style:none;margin:.8rem 0 0;padding-left:2.6rem;}
.ct-comment{display:flex;gap:.7rem;align-items:flex-start;flex-wrap:nowrap;}
.ct-comment .wp-block-avatar{flex:0 0 auto;}
.ct-comment .wp-block-avatar img,.ct-comment-avatar img{border-radius:50%;width:40px;height:40px;object-fit:cover;display:block;}
.ct-comment-body{flex:1 1 auto;min-width:0;margin:0;}
.ct-comment-bubble{display:inline-block;background:#f0f2f5;border-radius:18px;padding:.55rem .9rem;margin:0;max-width:100%;}
.ct-comment-bubble .wp-block-comment-author-name{font-family:Inter,system-ui,sans-serif;font-weight:700;font-size:.85rem;color:var(--ct-charcoal,#1f1d18);margin:0 0 .1rem;line-height:1.2;}
.ct-comment-bubble .wp-block-comment-author-name a{color:inherit;text-decoration:none;}
.ct-comment-bubble .wp-block-comment-content{font-family:Inter,system-ui,sans-serif;font-size:.9rem;line-height:1.45;color:#1f1d18;margin:0;}
.ct-comment-bubble .wp-block-comment-content p{margin:0;}
.ct-comment-actions{display:flex;gap:1.1rem;align-items:center;margin:.3rem 0 0 .95rem;}
.ct-comment-actions .wp-block-comment-date,.ct-comment-actions .wp-block-comment-date a{font-size:.72rem;color:var(--ct-muted,#857c69);text-decoration:none;}
.ct-comment-actions .wp-block-comment-reply-link a,.ct-comment-actions .comment-reply-link{font-size:.72rem;font-weight:700;color:var(--ct-ember,#c0552c);text-decoration:none;text-transform:none;letter-spacing:0;}
.comment-respond{margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--ct-rule,#e0dac9);}
.comment-respond .comment-reply-title{font-family:Fraunces,Georgia,serif;font-size:1.2rem;margin:0 0 1rem;color:var(--ct-charcoal,#1f1d18);}
.comment-form{display:flex;flex-direction:column;gap:.8rem;}
.comment-form-comment{order:-1;margin:0;}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;box-sizing:border-box;font-family:Inter,system-ui,sans-serif;font-size:.9rem;padding:.75rem 1rem;border:1px solid var(--ct-rule,#e0dac9);border-radius:14px;background:#fbfaf7;color:#1f1d18;}
.comment-form textarea{min-height:96px;resize:vertical;}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--ct-ember,#c0552c);background:#fff;box-shadow:0 0 0 3px rgba(192,85,44,.12);}
.comment-form .form-submit{margin:.2rem 0 0;}
.comment-form input[type=submit],.wp-block-post-comments-form input[type=submit]{font-family:Inter,system-ui,sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--ct-ember,#c0552c);border:none;padding:.8rem 2rem;border-radius:999px;cursor:pointer;transition:transform .3s ease,background .3s ease;}
.comment-form input[type=submit]:hover{background:var(--ct-olive,#4e6742);transform:translateY(-2px);}
.comment-form .comment-form-cookies-consent{flex-direction:row;align-items:center;gap:.45rem;font-size:.75rem;color:var(--ct-muted,#857c69);}
.comment-form .comment-form-cookies-consent input{width:auto;}
@media(max-width:560px){.wp-block-comments{padding:1.4rem 1.15rem 1.6rem;border-radius:16px;}.wp-block-comment-template ol{padding-left:1.4rem;}}

/* CT login prompt */
.ct-login-prompt{text-align:center;padding:1.2rem 1rem .6rem;}
.ct-login-prompt-title{font-family:Fraunces,Georgia,serif;font-size:1.3rem;color:var(--ct-charcoal,#1f1d18);margin:0 0 .35rem;}
.ct-login-prompt-text{font-family:Inter,system-ui,sans-serif;font-size:.9rem;color:var(--ct-muted,#857c69);margin:0 0 1.2rem;}
.ct-login-prompt-actions{display:flex;flex-direction:column;align-items:center;gap:.8rem;}
.ct-login-btn{display:inline-block;font-family:Inter,system-ui,sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--ct-ember,#c0552c);padding:.8rem 2.4rem;border-radius:999px;text-decoration:none;transition:transform .3s ease,background .3s ease;box-shadow:0 8px 20px rgba(192,85,44,.2);}
.ct-login-btn:hover{background:var(--ct-olive,#4e6742);transform:translateY(-2px);}
.ct-register-link{font-family:Inter,system-ui,sans-serif;font-size:.84rem;font-weight:600;color:var(--ct-ember,#c0552c);text-decoration:none;}
.ct-register-link:hover{text-decoration:underline;}

/* CT search */
.ct-search{max-width:440px;margin:1.4rem auto 0;}
.ct-search .wp-block-search__inside-wrapper{border:1px solid var(--ct-rule,#e0dac9);border-radius:999px;background:#fff;padding:.15rem .15rem .15rem .3rem;box-shadow:0 6px 18px rgba(20,18,14,.06);overflow:hidden;}
.ct-search .wp-block-search__input{border:none;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:.92rem;padding:.65rem 1rem;color:#1f1d18;}
.ct-search .wp-block-search__input:focus{outline:none;}
.ct-search .wp-block-search__button{background:var(--ct-ember,#c0552c);color:#fff;border:none;border-radius:999px;margin:0;padding:.6rem .9rem;cursor:pointer;transition:background .3s ease;display:flex;align-items:center;}
.ct-search .wp-block-search__button:hover{background:var(--ct-olive,#4e6742);}
.ct-search .wp-block-search__button svg{fill:#fff;width:20px;height:20px;}

/* CT header search */
.ct-nav-cluster{gap:1rem;align-items:center;}
.ct-search-top{position:relative;display:flex;align-items:center;}
.ct-search-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.ct-search-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;cursor:pointer;color:var(--ct-olive,#4e6742);transition:background .25s ease;}
.ct-search-icon:hover{background:rgba(78,103,66,.1);}
.ct-search-icon svg{width:20px;height:20px;}
.ct-search-pop{display:none;position:absolute;top:calc(100% + 12px);right:0;z-index:70;background:#fff;border:1px solid var(--ct-rule,#e0dac9);border-radius:999px;box-shadow:0 14px 34px rgba(20,18,14,.16);padding:.22rem .22rem .22rem .5rem;align-items:center;gap:.25rem;width:min(80vw,300px);}
.ct-search-cb:checked ~ .ct-search-pop{display:flex;}
.ct-search-pop input[type=search]{flex:1 1 auto;min-width:0;border:none;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:.9rem;padding:.5rem .5rem;color:#1f1d18;}
.ct-search-pop input[type=search]:focus{outline:none;}
.ct-search-pop button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:var(--ct-ember,#c0552c);cursor:pointer;transition:background .25s ease;}
.ct-search-pop button:hover{background:var(--ct-olive,#4e6742);}
.ct-search-pop button svg{width:17px;height:17px;fill:#fff;}

/* CT mobile menu (clean) */
@media(max-width:781px){
.ct-nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--ct-olive-deep,#3c5133)!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{color:#fff!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{width:100%!important;padding-top:3.5rem!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%!important;margin:0!important;border-top:1px solid rgba(255,255,255,.14)!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container>.wp-block-navigation-item:last-child{border-bottom:1px solid rgba(255,255,255,.14)!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{display:block!important;width:100%!important;padding:1.15rem 1.6rem!important;color:#fff!important;font-family:Inter,system-ui,sans-serif!important;font-variation-settings:normal!important;font-size:1rem!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;text-align:left!important;background-image:none!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{background:rgba(255,255,255,.07)!important;color:#fff!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .ct-nav-account .wp-block-navigation-item__content{display:flex!important;align-items:center!important;}
.ct-nav .wp-block-navigation__responsive-container.is-menu-open .ct-nav-name{max-width:none!important;}
}

/* CT header center + menu fallback */
.ct-header .ct-vol{flex:1 1 0;min-width:0;}
.ct-header .ct-nav-cluster{flex:1 1 0;min-width:0;justify-content:flex-end;}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--ct-olive-deep,#3c5133)!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{color:#fff!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{width:100%!important;padding-top:3.2rem!important;}
.wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__container{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;width:100%!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%!important;margin:0!important;border-top:1px solid rgba(255,255,255,.14)!important;}
.wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__container>.wp-block-navigation-item:last-child{border-bottom:1px solid rgba(255,255,255,.14)!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{display:block!important;width:100%!important;padding:1.1rem 1.5rem!important;color:#fff!important;font-family:Inter,system-ui,sans-serif!important;font-size:1rem!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;text-align:left!important;background-image:none!important;}
.wp-block-navigation__responsive-container.is-menu-open .ct-nav-account .wp-block-navigation-item__content{display:flex!important;align-items:center!important;}
.wp-block-navigation__responsive-container.is-menu-open .ct-nav-name{max-width:none!important;}

/* CT menu block-stack */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{display:block!important;overflow-x:hidden!important;padding-top:3.2rem!important;width:100%!important;}
.wp-block-navigation__responsive-container.is-menu-open ul.wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open ul.ct-nav{display:block!important;width:100%!important;padding:0!important;margin:0!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{display:block!important;width:100%!important;margin:0!important;float:none!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{display:block!important;width:100%!important;box-sizing:border-box!important;}
.wp-block-navigation__responsive-container.is-menu-open .ct-nav-account .wp-block-navigation-item__content{display:flex!important;align-items:center!important;}

/* CT footer cols */
.ct-footer-cols{margin-top:2rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.14);gap:2.5rem;}
.ct-footer-h{font-family:Inter,system-ui,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.75;margin:0 0 .55rem;}
.ct-footer-links{list-style:none;margin:0;padding:0;}
.ct-footer-links li{margin:0 0 .4rem;}
.ct-footer-links a{font-family:Inter,system-ui,sans-serif;font-size:.86rem;text-decoration:none;opacity:.92;}
.ct-footer-links a:hover{opacity:1;text-decoration:underline;}
@media(max-width:600px){.ct-footer-cols{gap:1.4rem;}}

/* CT newsletter */
.ct-nl-inner{max-width:560px;margin:0 auto;text-align:center;padding:0 1rem;}
.ct-nl-eyebrow{font-family:Inter,system-ui,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#e8c9a0;margin:0 0 .5rem;}
.ct-nl-title{font-family:Fraunces,Georgia,serif;font-size:clamp(1.5rem,3.4vw,2.2rem);color:#fff;margin:0 0 .5rem;}
.ct-nl-sub{font-family:Inter,system-ui,sans-serif;font-size:.92rem;color:rgba(255,255,255,.85);margin:0 0 1.4rem;}
.ct-nl-form{position:relative;display:flex;gap:.5rem;max-width:440px;margin:0 auto;background:#fff;border-radius:999px;padding:.25rem .25rem .25rem .5rem;box-shadow:0 14px 34px rgba(0,0,0,.22);}
.ct-nl-form input[type=email]{flex:1 1 auto;min-width:0;border:none;background:transparent;font-family:Inter,system-ui,sans-serif;font-size:.92rem;padding:.7rem .7rem;color:#1f1d18;}
.ct-nl-form input[type=email]:focus{outline:none;}
.ct-nl-form button{flex:0 0 auto;border:none;border-radius:999px;background:var(--ct-ember,#c0552c);color:#fff;font-family:Inter,system-ui,sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:.75rem 1.5rem;cursor:pointer;transition:background .3s ease;}
.ct-nl-form button:hover{background:#a34523;}
@media(max-width:480px){.ct-nl-form{flex-direction:column;border-radius:18px;padding:.5rem;}.ct-nl-form button{width:100%;}}

/* CT video */
.ct-video{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;cursor:pointer;background:#000;margin:.5rem 0 1.5rem;box-shadow:0 12px 30px rgba(20,18,14,.14);}
.ct-video img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:opacity .3s ease,transform .4s ease;}
.ct-video:hover img{opacity:1;transform:scale(1.02);}
.ct-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.ct-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:var(--ct-ember,#c0552c);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.35);transition:background .3s ease,transform .3s ease;pointer-events:none;}
.ct-video:hover .ct-video-play{background:var(--ct-olive,#4e6742);transform:translate(-50%,-50%) scale(1.08);}
.ct-video-play:after{content:'';display:block;width:0;height:0;border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px;}
.ct-video-note{font-family:Inter,system-ui,sans-serif;font-size:.78rem;color:var(--ct-muted,#857c69);margin:-0.8rem 0 2rem;text-align:center;}

/* CT card stars */
.ct-card-stars{flex:0 0 100%;display:block;margin-top:.4rem;color:var(--ct-ember,#c0552c);font-size:.88rem;letter-spacing:.08em;line-height:1;}
.ct-card-stars em{font-style:normal;font-family:Inter,system-ui,sans-serif;font-size:.72rem;color:var(--ct-muted,#857c69);letter-spacing:0;margin-left:.2rem;}

/* CT card stars mobile fix + recipe box mobile stack */
@media (max-width: 600px){
  .rb-head--media{flex-direction:column;align-items:stretch;gap:1rem;}
  .rb-head-img{align-self:auto;}
  .rb-head-img img{max-height:220px;}
  .rb-meta{flex-wrap:wrap;gap:.6rem 1.2rem;}
  .rb-ing{grid-template-columns:1fr;}
  .ct-card-stars{font-size:.95rem;}
}

/* CT related links */
.ct-reled{margin:2.5rem 0 1rem;padding:1.4rem 1.5rem;background:var(--ct-sand,#f4efe3);border:1px solid var(--ct-rule,#e0dac9);border-radius:14px;}
.ct-reled-title{font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:600;color:var(--ct-olive-deep,#3c5133);margin:0 0 .7rem;letter-spacing:.01em;}
.ct-reled-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem .8rem;}
.ct-reled-list li{margin:0;}
.ct-reled-list a{display:inline-block;padding:.45rem .9rem;background:#fff;border:1px solid var(--ct-rule,#e0dac9);border-radius:999px;font-family:Inter,system-ui,sans-serif;font-size:.9rem;color:var(--ct-olive-deep,#3c5133);text-decoration:none;transition:all .15s ease;}
.ct-reled-list a:hover{background:var(--ct-olive,#4e6742);color:#fff;border-color:var(--ct-olive,#4e6742);}
@media (max-width:600px){.ct-reled{padding:1.1rem 1.15rem;}.ct-reled-list a{font-size:.85rem;}}

/* CT home SEO */
.ct-home-seo{margin:0 auto;padding:2.5rem 1.25rem 1rem;text-align:center;}
.ct-home-seo-title{font-family:Fraunces,Georgia,serif;font-size:1.5rem;color:var(--ct-olive-deep,#3c5133);margin:0 0 1rem;}
.ct-home-seo p{font-family:Inter,system-ui,sans-serif;font-size:.98rem;line-height:1.7;color:var(--ct-muted,#857c69);max-width:70ch;margin:0 auto 1rem;}
.ct-home-seo a{color:var(--ct-olive,#4e6742);text-decoration:underline;text-underline-offset:2px;}
.ct-home-seo a:hover{color:var(--ct-ember,#c0552c);}
@media (max-width:600px){.ct-home-seo{padding:1.75rem 1rem .5rem;}.ct-home-seo-title{font-size:1.3rem;}}

/* CT region hub */
.ct-regions{max-width:1100px;margin:0 auto 2.5rem;padding:0 1.25rem;}
.ct-regions-eyebrow{font-family:Inter,system-ui,sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ct-muted,#857c69);text-align:center;margin:0 0 1.25rem;}
.ct-regions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.ct-region{background:var(--ct-sand,#f4efe3);border:1px solid var(--ct-rule,#e0dac9);border-radius:14px;padding:1.15rem 1.25rem;}
.ct-region-name{font-family:Fraunces,Georgia,serif;font-size:1.02rem;font-weight:600;color:var(--ct-olive-deep,#3c5133);margin:0 0 .7rem;display:flex;align-items:center;gap:.5rem;}
.ct-region-count{font-family:Inter,system-ui,sans-serif;font-size:.68rem;font-weight:500;color:var(--ct-muted,#857c69);background:#fff;border:1px solid var(--ct-rule,#e0dac9);border-radius:999px;padding:.1rem .45rem;line-height:1.5;}
.ct-region-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;}
.ct-region-list li{margin:0;}
.ct-region-list a{display:inline-block;padding:.32rem .7rem;background:#fff;border:1px solid var(--ct-rule,#e0dac9);border-radius:999px;font-family:Inter,system-ui,sans-serif;font-size:.83rem;color:var(--ct-olive-deep,#3c5133);text-decoration:none;transition:all .15s ease;}
.ct-region-list a:hover{background:var(--ct-olive,#4e6742);color:#fff;border-color:var(--ct-olive,#4e6742);}
@media (max-width:900px){.ct-regions-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.ct-regions-grid{grid-template-columns:1fr;gap:.9rem;}.ct-regions{padding:0 1rem;margin-bottom:1.5rem;}.ct-region{padding:1rem 1.1rem;}}
