/* ==========================================================================
   The Rooster's Den — theme stylesheet
   "Sunup farmhouse diner": a sunrise hero with the crowing rooster, biscuit-cream paper
   sections with a wheat-and-egg print, chalkboard specials boards, grain-sack stripes,
   scalloped pie-crust edges and a night-on-the-farm footer.

   Specificity ladder (see docs/ARCHITECTURE.md):
   - Elementor kit defaults ............................ (0,3,0)
   - theme rules on Elementor widgets: body .elementor … (0,3,1)   <- here
   - the restaurant's own per-widget picks ............. (0,4,0)   <- still win
   Context qualifiers use :where() so they add nothing.
   ========================================================================== */

:root {
	/* Dark: chalkboard and night. (Names kept from the shared engine: char/smoke/bark.) */
	--char: #15110E;
	--smoke: #1E1916;
	--bark: #2A2420;
	--bark-2: #3A322C;
	--denim: #1F2D45;
	/* Rooster red (white text 6:1), egg-yolk gold, sunrise orange. */
	--red: #C21F2E;
	--red-dark: #9A1724;
	--red-text: #A81B28; /* small red text on cream: 6.4:1 */
	--ember: #F08A3C;
	--honey: #F6B637;
	--yolk-soft: #FFD98A;
	/* Light: biscuit cream, flour sack, butcher paper. */
	--cream: #FBF4E6;
	--paper: #FFFDF8;
	--kraft: #F2E6CF;
	--ink: #2A211B;
	--muted: #6B5B4F; /* 6:1 on cream */
	--line: #E3D3B8;
	--open: #2E7D4F;
	--open-dark: #74D69E;

	--f-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--f-cond: "Oswald", "Arial Narrow", "Roboto Condensed", sans-serif;
	--f-body: "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--f-script: "Caveat", "Segoe Print", "Bradley Hand", cursive;

	--container: 1240px;
	--gutter: clamp(1.05rem, 0.6rem + 2vw, 2rem);
	--sec-y: clamp(3.75rem, 2.4rem + 4vw, 6.75rem);
	--rd-gap: clamp(1.1rem, 0.7rem + 1.4vw, 2rem);
	--radius: 18px;
	--radius-sm: 10px;
	--shadow-1: 0 1px 2px rgba(42, 33, 27, 0.08), 0 10px 26px rgba(42, 33, 27, 0.09);
	--shadow-2: 0 2px 4px rgba(42, 33, 27, 0.12), 0 24px 56px rgba(42, 33, 27, 0.24);
	--shadow-dark: 0 2px 6px rgba(0, 0, 0, 0.35), 0 24px 60px rgba(0, 0, 0, 0.45);
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--header-h: 84px;

	--grain: url("../img/textures/grain.png");
	--chalk: url("../img/textures/chalk.webp");
	--farm: url("../img/patterns/farm.svg");
	--farm-light: url("../img/patterns/farm-light.svg");
	--stars: url("../img/patterns/stars.svg");
	--torn: url("../img/patterns/torn.svg"); /* scalloped pie-crust edge */
	--sunburst: url("../img/patterns/sunburst.svg");
	/* Grain-sack ticking: a cream band with a red–denim–red stripe. */
	--ticking: linear-gradient(180deg, transparent 0 20%, var(--red) 20% 30%, transparent 30% 42%, var(--denim) 42% 58%, transparent 58% 70%, var(--red) 70% 80%, transparent 80%);
}

/* ------------------------------------------------------------------ base */

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--f-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img,
svg,
video { max-width: 100%; height: auto; }
#wpadminbar img { max-width: none; height: auto; }

.rd-ico { width: 1em; height: 1em; flex: none; vertical-align: -0.14em; }

a { color: var(--red-text); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--red-dark); }
:where(.on-dark) a:not([class]) { color: var(--honey); }
:where(.on-dark) a:not([class]):hover { color: #fff; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--f-display);
	font-weight: 650;
	line-height: 1.06;
	letter-spacing: -0.012em;
	color: inherit;
	text-wrap: balance;
}
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; border-radius: 3px; }
:where(.on-dark, .rd-header, .rd-topbar, .rd-footer, .rd-drawer, .rd-announce, .rd-mcta) :focus-visible { outline-color: var(--honey); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: 1rem; top: -100px;
	z-index: 100000;
	padding: 0.75rem 1.1rem;
	background: var(--honey);
	color: var(--char);
	font-family: var(--f-cond);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 0 0 8px 8px;
}
.skip-link:focus { top: 0; }

.rd-wrap {
	width: min(100% - 2 * var(--gutter), var(--container));
	margin-inline: auto;
}

.rd-main { display: block; }
.rd-main:focus { outline: 0; }

::selection { background: var(--honey); color: var(--char); }

/* ------------------------------------------------------------------ buttons (theme markup) */

.rd-btns { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.rd-btns--center { justify-content: center; }

.rd-btn {
	--btn-bg: var(--red);
	--btn-fg: #fff;
	--btn-bd: var(--red);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	min-height: 48px;
	padding: 0.7em 1.45em;
	border: 2px solid var(--btn-bd);
	border-radius: 999px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--f-cond);
	font-size: 0.98rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.rd-btn .rd-ico { font-size: 1.15em; }
.rd-btn:hover { --btn-bg: var(--red-dark); --btn-bd: var(--red-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(154, 23, 36, 0.32); }
.rd-btn:active { transform: translateY(0); }
.rd-btn--red { box-shadow: 0 6px 16px rgba(194, 31, 46, 0.28); }
.rd-btn--ghost { --btn-bg: transparent; --btn-fg: var(--cream); --btn-bd: rgba(251, 244, 230, 0.55); }
.rd-btn--ghost:hover { --btn-bg: var(--cream); --btn-bd: var(--cream); color: var(--char); box-shadow: none; }
.rd-btn--outline { --btn-bg: transparent; --btn-fg: var(--ink); --btn-bd: var(--ink); }
.rd-btn--outline:hover { --btn-bg: var(--ink); --btn-bd: var(--ink); color: var(--cream); box-shadow: none; }
.rd-btn--honey { --btn-bg: var(--honey); --btn-fg: var(--char); --btn-bd: var(--honey); }
.rd-btn--honey:hover { --btn-bg: #fff; --btn-bd: #fff; color: var(--char); box-shadow: none; }
.rd-btn--sm { min-height: 40px; padding: 0.5em 1.1em; font-size: 0.88rem; }
.rd-btn--block { width: 100%; }

/* ------------------------------------------------------------------ headings on Elementor widgets */

body .elementor .elementor-widget-heading .elementor-heading-title {
	font-family: var(--f-display);
	font-weight: 650;
	line-height: 1.04;
	letter-spacing: -0.015em;
	color: var(--ink);
	text-wrap: balance;
}
body .elementor :where(.on-dark) .elementor-widget-heading .elementor-heading-title { color: var(--cream); }
body .elementor .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.5rem, 1.6rem + 4vw, 5.1rem); }
body .elementor .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(2.05rem, 1.45rem + 2.6vw, 3.6rem); }
body .elementor .elementor-widget-heading h3.elementor-heading-title { font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.75rem); }
body .elementor .rd-title-xl .elementor-heading-title { font-size: clamp(2.8rem, 1.6rem + 5.4vw, 6.4rem); line-height: 0.98; }
body .elementor .rd-accent-word .elementor-heading-title em,
body .elementor .elementor-heading-title em { font-style: normal; font-weight: 800; color: var(--red); }
body .elementor :where(.on-dark) .elementor-heading-title em { color: var(--honey); }
body .elementor .rd-heading-cond .elementor-heading-title {
	font-family: var(--f-cond);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ labels */

.rd-eyebrow-text,
body .elementor .rd-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	margin: 0;
	color: var(--red-text);
	font-family: var(--f-cond);
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.rd-eyebrow-text::before,
.rd-eyebrow-text::after,
body .elementor .rd-eyebrow .elementor-heading-title::before,
body .elementor .rd-eyebrow .elementor-heading-title::after {
	content: "";
	width: 1.6em;
	height: 2px;
	flex: none;
	border-radius: 2px;
	background: linear-gradient(90deg, currentColor 0 62%, transparent 62% 76%, var(--honey) 76%);
}
.rd-eyebrow-text::after,
body .elementor .rd-eyebrow .elementor-heading-title::after { background: linear-gradient(90deg, var(--honey) 0 24%, transparent 24% 38%, currentColor 38%); }
:where(.on-dark) .rd-eyebrow-text,
body .elementor :where(.on-dark) .rd-eyebrow .elementor-heading-title { color: var(--honey); }
body .elementor .rd-eyebrow.rd-center { text-align: center; }

.rd-script-text,
body .elementor .rd-script .elementor-heading-title {
	margin: 0;
	color: var(--red);
	font-family: var(--f-script);
	font-size: clamp(1.85rem, 1.3rem + 1.8vw, 2.85rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	transform: rotate(-2.5deg);
	transform-origin: left center;
}
:where(.on-dark) .rd-script-text,
body .elementor :where(.on-dark) .rd-script .elementor-heading-title { color: var(--yolk-soft); }

/* ------------------------------------------------------------------ prose */

.rd-prose,
body .elementor .rd-prose { color: var(--ink); }
:where(.on-dark) .rd-prose,
body .elementor :where(.on-dark) .rd-prose { color: rgba(251, 244, 230, 0.88); }
body .elementor .rd-prose p,
body .elementor .rd-lede p { max-width: 64ch; }
body .elementor .rd-lede { font-size: clamp(1.08rem, 1rem + 0.35vw, 1.28rem); line-height: 1.6; }
body .elementor .rd-center,
body .elementor .rd-center p { text-align: center; margin-inline: auto; }
body .elementor .rd-center .elementor-heading-title { text-align: center; }
body .elementor .elementor-widget.rd-center.rd-eyebrow,
body .elementor .elementor-widget.rd-center.rd-script { display: flex; justify-content: center; }
body .elementor .rd-script.rd-center .elementor-heading-title { transform-origin: center; }
body .elementor .rd-prose strong { color: inherit; font-weight: 700; }

/* ------------------------------------------------------------------ Elementor buttons */

body .elementor .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0.75em 1.6em;
	border: 2px solid var(--red);
	border-radius: 999px;
	background: var(--red);
	color: #fff;
	font-family: var(--f-cond);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	box-shadow: 0 6px 16px rgba(194, 31, 46, 0.28);
	transition: background-color 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
body .elementor .elementor-widget-button .elementor-button:hover,
body .elementor .elementor-widget-button .elementor-button:focus-visible {
	background: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(154, 23, 36, 0.32);
}
body .elementor .rd-btn-ghost .elementor-button { background: transparent; border-color: rgba(251, 244, 230, 0.55); color: var(--cream); box-shadow: none; }
body .elementor .rd-btn-ghost .elementor-button:hover,
body .elementor .rd-btn-ghost .elementor-button:focus-visible { background: var(--cream); border-color: var(--cream); color: var(--char); box-shadow: none; }
body .elementor .rd-btn-outline .elementor-button { background: transparent; border-color: var(--ink); color: var(--ink); box-shadow: none; }
body .elementor .rd-btn-outline .elementor-button:hover,
body .elementor .rd-btn-outline .elementor-button:focus-visible { background: var(--ink); border-color: var(--ink); color: var(--cream); box-shadow: none; }
body .elementor .rd-btn-honey .elementor-button { background: var(--honey); border-color: var(--honey); color: var(--char); box-shadow: 0 6px 16px rgba(246, 182, 55, 0.25); }
body .elementor .rd-btn-honey .elementor-button:hover,
body .elementor .rd-btn-honey .elementor-button:focus-visible { background: #fff; border-color: #fff; color: var(--char); }
body .elementor .elementor-widget-button.elementor-widget__width-auto { margin-inline-end: 0.75rem; margin-block-end: 0.75rem; }
body .elementor .elementor-widget-button .elementor-button-content-wrapper { gap: 0.5em; }

/* ------------------------------------------------------------------ checklists (icon-list widget) */

body .elementor .rd-checks .elementor-icon-list-items { display: grid; gap: 0.7rem; margin: 0; padding: 0; }
body .elementor .rd-checks .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 0.8rem; margin: 0; padding: 0; font-size: 1.05rem; line-height: 1.45; }
body .elementor .rd-checks .elementor-icon-list-icon {
	display: inline-grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	flex: none;
	margin: 0;
	background: var(--red);
	color: #fff;
	border-radius: 50%;
}
body .elementor .rd-checks .elementor-icon-list-icon i,
body .elementor .rd-checks .elementor-icon-list-icon svg { width: 0.85rem; height: 0.85rem; font-size: 0.85rem; color: #fff; fill: #fff; }
body .elementor .rd-checks .elementor-icon-list-icon svg.rd-ico { fill: none; stroke: #fff; }
body .elementor .rd-checks .elementor-icon-list-text { color: inherit; padding: 0; font-weight: 600; }
body .elementor :where(.on-dark) .rd-checks .elementor-icon-list-text { color: var(--cream); }

/* Inline chips (sauce choices, trust strip): ink on light sections, cream on dark ones. */
body .elementor .rd-chiplist .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 0.5rem 0.6rem; margin: 0; padding: 0; }
body .elementor .rd-chiplist .elementor-icon-list-item {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0.45rem 0.95rem;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	font-family: var(--f-cond);
	font-size: 0.92rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink);
}
body .elementor .rd-chiplist .elementor-icon-list-item::after { content: none; }
body .elementor .rd-chiplist .elementor-icon-list-icon { margin: 0; }
body .elementor .rd-chiplist .elementor-icon-list-icon i,
body .elementor .rd-chiplist .elementor-icon-list-icon svg { width: 0.95rem; height: 0.95rem; font-size: 0.95rem; color: var(--red); fill: var(--red); }
body .elementor .rd-chiplist .elementor-icon-list-icon svg.rd-ico { fill: none; stroke: var(--red); }
body .elementor .rd-chiplist .elementor-icon-list-text { padding: 0; color: inherit; }
body .elementor :where(.on-dark) .rd-chiplist .elementor-icon-list-item { border-color: rgba(251, 244, 230, 0.3); color: var(--cream); }
body .elementor :where(.on-dark) .rd-chiplist .elementor-icon-list-text { color: var(--cream); }
body .elementor :where(.on-dark) .rd-chiplist .elementor-icon-list-icon i,
body .elementor :where(.on-dark) .rd-chiplist .elementor-icon-list-icon svg { color: var(--honey); fill: var(--honey); }
body .elementor :where(.on-dark) .rd-chiplist .elementor-icon-list-icon svg.rd-ico { fill: none; stroke: var(--honey); }

/* ------------------------------------------------------------------ sections */

.rd-sec,
body .elementor .elementor-section.rd-sec { position: relative; padding-block: var(--sec-y); }
body .elementor .elementor-section.rd-sec--tight { padding-block: calc(var(--sec-y) * 0.6); }
body .elementor .elementor-section.rd-sec--flush-top { padding-top: 0; }
body .elementor .elementor-section.rd-sec--flush-bottom { padding-bottom: 0; }
body .elementor .elementor-section.rd-sec--head { padding-bottom: clamp(1.5rem, 1rem + 2vw, 2.75rem); }
body .elementor .elementor-section.rd-sec--head + .rd-sec { padding-top: 0; }

.bg-cream { background-color: var(--cream); }
.bg-paper { background-color: var(--paper); }
.bg-kraft { background-color: var(--kraft); }
.bg-smoke { background-color: var(--smoke); }
.bg-char { background-color: var(--char); }
.bg-red { background-color: var(--red); }
.on-dark { color: var(--cream); }

/* Light sections are clean, warm paper with a soft light falloff: nothing noisy sits behind
   text. Dark sections keep a faint film grain and an ember glow. */
.bg-cream { background-image: radial-gradient(1400px 720px at 50% 0%, rgba(255, 252, 245, 0.9), rgba(255, 252, 245, 0) 72%); }
.bg-paper { background-image: none; }
.bg-kraft { background-image: radial-gradient(1400px 720px at 50% 0%, rgba(246, 236, 216, 0.85), rgba(246, 236, 216, 0) 72%); }
/* A heading band and the section it introduces read as one surface: the band's glow fades out
   inside its own height and the next section of the same colour starts flat, so no seam. */
.rd-sec--head.bg-cream { background-image: radial-gradient(1400px 125% at 50% 0%, rgba(255, 252, 245, 0.9), rgba(255, 252, 245, 0) 72%); }
.rd-sec--head.bg-kraft { background-image: radial-gradient(1400px 125% at 50% 0%, rgba(246, 236, 216, 0.85), rgba(246, 236, 216, 0) 72%); }
.rd-sec--head.bg-cream + .bg-cream,
.rd-sec--head.bg-kraft + .bg-kraft { background-image: none; }
/* Dark sections are a well-used chalkboard: eraser haze, chalk dust and a soft vignette. */
.bg-smoke,
.bg-char {
	background-image:
		radial-gradient(130% 90% at 50% 40%, transparent 55%, rgba(0, 0, 0, 0.45) 100%),
		radial-gradient(1000px 520px at 85% 0%, rgba(240, 138, 60, 0.08), transparent 60%),
		var(--chalk);
	background-size: auto, auto, cover;
	background-position: center;
}
.bg-char { background-color: var(--char); }

.pat-farm,
.pat-farm-light,
.pat-stars { isolation: isolate; }
.pat-farm::before,
.pat-farm-light::before,
.pat-stars::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-repeat: repeat;
}
/* The wheat-and-egg print sits at the section's edges, never behind its text. */
.pat-farm::before { background-image: var(--farm); background-size: 160px 160px; opacity: 0.07; -webkit-mask-image: radial-gradient(ellipse 62% 72% at 50% 50%, transparent 46%, #000 100%); mask-image: radial-gradient(ellipse 62% 72% at 50% 50%, transparent 46%, #000 100%); }
.pat-farm-light::before { background-image: var(--farm-light); background-size: 160px 160px; opacity: 0.06; -webkit-mask-image: radial-gradient(ellipse 62% 72% at 50% 50%, transparent 46%, #000 100%); mask-image: radial-gradient(ellipse 62% 72% at 50% 50%, transparent 46%, #000 100%); }
.pat-stars::before { background-image: var(--stars); background-size: 220px 220px; opacity: 0.09; -webkit-mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, transparent 50%, #000 100%); mask-image: radial-gradient(ellipse 60% 70% at 50% 50%, transparent 50%, #000 100%); }

/* Scalloped pie-crust edge: the section draws a row of scallops in its own colour over the one above. */
.edge-torn { --edge: var(--cream); }
.edge-torn.bg-paper { --edge: var(--paper); }
.edge-torn.bg-kraft { --edge: var(--kraft); }
.edge-torn.bg-smoke { --edge: var(--smoke); }
.edge-torn.bg-char { --edge: var(--char); }
.edge-torn::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -17px;
	height: 18px;
	z-index: 3;
	pointer-events: none;
	background: var(--edge);
	-webkit-mask: var(--torn) repeat-x 0 0 / 675px 18px;
	mask: var(--torn) repeat-x 0 0 / 675px 18px;
}

/* Grain-sack stripe along the top of a section. */
.edge-gingham { border-top: 0; }
.edge-gingham > .elementor-container::before,
.rd-gingham-strip {
	content: "";
	display: block;
}
.rd-gingham,
.rd-stripe {
	background-color: var(--cream);
	background-image: var(--ticking);
	background-size: 100% 100%;
}
.edge-gingham::after,
.edge-stripe::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 14px;
	z-index: 3;
	background-color: var(--cream);
	background-image: var(--ticking);
	background-size: 100% 100%;
	box-shadow: 0 2px 0 rgba(21, 17, 14, 0.15);
	pointer-events: none;
}

/* ------------------------------------------------------------------ status pill */

.rd-status {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	padding: 0.32em 0.85em 0.32em 0.7em;
	border-radius: 999px;
	background: rgba(251, 244, 230, 0.1);
	color: var(--cream);
	font-family: var(--f-cond);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
}
.rd-status__dot {
	position: relative;
	width: 0.6em;
	height: 0.6em;
	border-radius: 50%;
	background: #E5524F;
	flex: none;
}
.rd-status.is-open .rd-status__dot { background: var(--open-dark); }
/* The pulse is a ring that scales and fades (composited), not an animated box-shadow (repaints). */
.rd-status.is-open .rd-status__dot::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(111, 211, 155, 0.55);
	animation: rd-pulse 2.4s ease-out infinite;
}
.rd-status--light { background: rgba(42, 33, 27, 0.06); color: var(--ink); }
.rd-status--light.is-open .rd-status__dot { background: var(--open); }
.rd-status--light .rd-status__dot { background: var(--red); }
@keyframes rd-pulse {
	0% { transform: scale(1); opacity: 0.85; }
	70%, 100% { transform: scale(2.8); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .rd-status.is-open .rd-status__dot::after { animation: none; opacity: 0; } }

/* ------------------------------------------------------------------ announcement bar */

.rd-announce {
	position: relative;
	z-index: 60;
	background: var(--red);
	color: #fff;
	font-family: var(--f-cond);
	font-size: 0.95rem;
	letter-spacing: 0.05em;
}
.rd-announce::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 6px;
	background-color: var(--cream);
	background-image: var(--ticking);
	background-size: 100% 100%;
	opacity: 0.95;
}
.rd-announce__in {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	min-height: 44px;
	padding-block: 0.45rem;
	text-align: center;
}
.rd-announce__text { margin: 0; font-weight: 500; text-transform: uppercase; }
.rd-announce__text .rd-ico { color: var(--honey); margin-right: 0.35em; font-size: 1.1em; }
.rd-announce__link { color: #fff; font-weight: 600; white-space: nowrap; }
.rd-announce__link:hover { color: var(--honey); }
.rd-announce__close {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin-left: auto;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.16);
	color: #fff;
	cursor: pointer;
	flex: none;
}
.rd-announce__close:hover { background: rgba(0, 0, 0, 0.3); }
.rd-announce.is-dismissed { display: none; }

/* ------------------------------------------------------------------ top bar */

.rd-topbar {
	position: relative;
	z-index: 55;
	background: var(--char);
	color: rgba(251, 244, 230, 0.78);
	font-family: var(--f-cond);
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	border-bottom: 1px solid rgba(251, 244, 230, 0.08);
}
.rd-topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 42px; }
.rd-topbar__left,
.rd-topbar__right { display: flex; align-items: center; gap: 1.2rem; }
.rd-topbar a { color: rgba(251, 244, 230, 0.85); text-decoration: none; display: inline-flex; align-items: center; gap: 0.45em; }
.rd-topbar a:hover { color: var(--honey); }
.rd-topbar__hours { text-transform: uppercase; }
.rd-topbar .rd-status { background: transparent; padding: 0; }
.rd-topbar__social { display: inline-flex; gap: 0.5rem; }
.rd-topbar__social a { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(251, 244, 230, 0.08); }
.rd-topbar__social a:hover { background: var(--red); color: #fff; }

/* ------------------------------------------------------------------ header */

/* A cream farmhouse header: the logo in ink with its red weathervane rooster, a grain-sack
   stripe along the bottom edge. It turns a touch more solid (and shorter) once you scroll. */
.rd-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 244, 230, 0.94);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	color: var(--ink);
	box-shadow: 0 10px 30px rgba(42, 33, 27, 0.08);
	transition: background-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.rd-header.is-scrolled { background: rgba(255, 253, 248, 0.97); box-shadow: 0 10px 30px rgba(42, 33, 27, 0.14); }
.admin-bar .rd-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rd-header { top: 0; } }
.rd-header::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 6px;
	background-color: var(--cream);
	background-image: var(--ticking);
	background-size: 100% 100%;
	box-shadow: 0 3px 6px rgba(42, 33, 27, 0.08);
}
.rd-header__in {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.25rem;
	min-height: var(--header-h);
}

.rd-brand {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: none;
	color: var(--ink);
	text-decoration: none;
	line-height: 1;
}
.rd-brand:hover { color: var(--ink); }
.rd-brand .rd-logo { display: block; width: auto; height: 58px; transition: height 0.3s var(--ease); }
.rd-brand .rd-logo__mark { fill: var(--red); transform-box: fill-box; transform-origin: 50% 100%; }
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
	.rd-brand:hover .rd-logo__mark { animation: rd-vane 1.2s var(--ease); }
}
@keyframes rd-vane {
	0%, 100% { transform: rotate(0); }
	30% { transform: rotate(-7deg); }
	60% { transform: rotate(4deg); }
}
.rd-brand--header .rd-logo { height: 62px; }
.rd-header.is-scrolled .rd-brand--header .rd-logo { height: 50px; }
.rd-brand--footer,
.rd-brand--drawer { color: var(--cream); }
.rd-brand--footer:hover,
.rd-brand--drawer:hover { color: #fff; }
.rd-brand__img { display: block; width: auto; height: 64px; }
.rd-brand__text { font-family: var(--f-display); font-weight: 700; font-size: 1.7rem; color: inherit; }
.rd-brand__text small { display: block; margin-top: 0.25rem; font-family: var(--f-cond); font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--red-text); }
.rd-brand--custom img { max-height: 70px; width: auto; }

.rd-nav { margin-left: auto; }
.rd-nav > ul,
.rd-nav .rd-nav__list {
	display: flex;
	align-items: center;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rd-nav li { position: relative; list-style: none; }
.rd-nav a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.4rem 0.78rem;
	color: var(--ink);
	font-family: var(--f-cond);
	font-size: 0.98rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s var(--ease);
}
/* A hand-drawn yolk swash under the hovered / current item. */
.rd-nav a::after {
	content: "";
	position: absolute;
	left: 0.6rem;
	right: 0.6rem;
	bottom: 4px;
	height: 7px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5.5C20 2 42 1.5 60 3.2S88 6 98 3' fill='none' stroke='%23F6B637' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--ease);
}
.rd-nav a:hover { color: var(--red-text); }
.rd-nav a:hover::after,
.rd-nav .current-menu-item > a::after,
.rd-nav .current_page_item > a::after,
.rd-nav a[aria-current="page"]::after { transform: scaleX(1); }
.rd-nav .current-menu-item > a,
.rd-nav .current_page_item > a,
.rd-nav a[aria-current="page"] { color: var(--red-text); }
.rd-nav .sub-menu { display: none; }

.rd-header__cta { display: flex; align-items: center; gap: 0.75rem; margin-left: 0.5rem; }
.rd-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ink);
	font-family: var(--f-cond);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-decoration: none;
	white-space: nowrap;
}
.rd-header__phone .rd-ico { color: var(--red); }
.rd-header__phone:hover { color: var(--red-text); }

.rd-burger {
	display: none;
	align-items: center;
	gap: 0.55rem;
	min-height: 46px;
	padding: 0 0.95rem;
	border: 1.5px solid rgba(42, 33, 27, 0.28);
	border-radius: 999px;
	background: transparent;
	color: var(--ink);
	font-family: var(--f-cond);
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}
.rd-burger:hover { border-color: var(--red); color: var(--red-text); }
.rd-burger__bars { display: grid; gap: 4px; width: 18px; }
.rd-burger__bars span { display: block; height: 2px; border-radius: 2px; background: currentColor; }

@media (max-width: 1240px) {
	.rd-header__phone span { display: none; }
	.rd-nav a { padding-inline: 0.55rem; letter-spacing: 0.07em; font-size: 0.94rem; }
	.rd-nav a::after { left: 0.45rem; right: 0.45rem; }
}
@media (max-width: 1120px) {
	.rd-nav,
	.rd-header__phone { display: none; }
	.rd-burger { display: inline-flex; }
	.rd-header__cta { margin-left: auto; }
	.rd-topbar__hours { display: none; }
}
@media (max-width: 767px) {
	:root { --header-h: 70px; }
	.rd-topbar { display: none; }
	.rd-brand--header .rd-logo { height: 48px; }
	.rd-header.is-scrolled .rd-brand--header .rd-logo { height: 44px; }
	.rd-header__order span { display: none; }
	.rd-header__order { width: 46px; padding: 0; min-height: 46px; }
	.rd-burger__label { display: none; }
	.rd-burger { width: 46px; justify-content: center; padding: 0; }
}

/* ------------------------------------------------------------------ drawer (mobile nav) */

.rd-drawer { position: fixed; inset: 0; z-index: 100; }
.rd-drawer[hidden] { display: none; }
.rd-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 6, 5, 0.6);
	opacity: 0;
	transition: opacity 0.35s var(--ease);
}
.rd-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
	width: min(420px, 92vw);
	padding: 1.25rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));
	overflow-y: auto;
	background: var(--smoke);
	color: var(--cream);
	box-shadow: -20px 0 60px rgba(0, 0, 0, 0.4);
	transform: translateX(100%);
	transition: transform 0.38s var(--ease);
}
.rd-drawer.is-open .rd-drawer__backdrop { opacity: 1; }
.rd-drawer.is-open .rd-drawer__panel { transform: none; }
.rd-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rd-drawer__head .rd-brand__img { height: 64px; }
.rd-drawer__close {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1.5px solid rgba(251, 244, 230, 0.3);
	border-radius: 50%;
	background: transparent;
	color: var(--cream);
	font-size: 1.3rem;
	cursor: pointer;
}
.rd-drawer__close:hover { border-color: var(--honey); color: var(--honey); }
.rd-drawer__nav ul { margin: 0; padding: 0; list-style: none; }
.rd-drawer__nav li { list-style: none; border-bottom: 1px solid rgba(251, 244, 230, 0.09); }
.rd-drawer__nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	color: var(--cream);
	font-family: var(--f-display);
	font-size: 1.55rem;
	text-decoration: none;
}
.rd-drawer__nav a::after { content: "→"; font-family: var(--f-body); font-size: 1.1rem; color: var(--ember); }
.rd-drawer__nav a:hover,
.rd-drawer__nav .current-menu-item > a,
.rd-drawer__nav .current_page_item > a { color: var(--honey); }
.rd-drawer__info { display: grid; gap: 0.9rem; padding: 1.1rem; border-radius: var(--radius); background: rgba(251, 244, 230, 0.06); }
.rd-drawer__actions { display: grid; gap: 0.7rem; margin-top: auto; }
html.rd-drawer-open,
html.rd-drawer-open body { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
	.rd-drawer.is-open .rd-drawer__nav li { animation: rd-slide-in 0.45s var(--ease) both; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(2) { animation-delay: 0.04s; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(3) { animation-delay: 0.08s; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(4) { animation-delay: 0.12s; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(5) { animation-delay: 0.16s; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(6) { animation-delay: 0.2s; }
	.rd-drawer.is-open .rd-drawer__nav li:nth-child(7) { animation-delay: 0.24s; }
}
@keyframes rd-slide-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ mobile action bar */

.rd-mcta {
	position: fixed;
	left: 0.75rem;
	right: 0.75rem;
	bottom: calc(0.75rem + env(safe-area-inset-bottom));
	z-index: 45;
	display: none;
	grid-template-columns: 1fr 1.25fr 1fr;
	gap: 0.4rem;
	padding: 0.4rem;
	border-radius: 999px;
	background: rgba(21, 17, 14, 0.94);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
	transform: translateY(160%);
	transition: transform 0.35s var(--ease);
}
.rd-mcta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 48px;
	border-radius: 999px;
	color: var(--cream);
	font-family: var(--f-cond);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.rd-mcta__btn--order { background: var(--red); color: #fff; }
.rd-mcta__btn:hover { color: var(--honey); }
.rd-mcta__btn--order:hover { background: var(--red-dark); color: #fff; }
@media (max-width: 767px) {
	.rd-mcta { display: grid; }
	.rd-mcta.is-visible { transform: none; }
	body.has-mcta .rd-footer { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
}

/* ------------------------------------------------------------------ hero */

/* Sunrise over the farm. The sky is the section's own gradient (::before), the hills are an
   SVG along the bottom (::after) whose nearest ridge is the cream of the section below, so the
   hero rolls straight into the page. The rooster (with his own sun) is the [rooster_crow]
   shortcode in the right-hand column. Everything decorative is CSS: nothing for the editor to
   trip over. */
.rd-hero,
body .elementor .elementor-section.rd-hero {
	/* The bottom padding is the hills' room; the rooster sinks by the same amount so his post
	   stands in them. */
	--hero-pb: clamp(5.5rem, 3.5rem + 3.4vw, 9rem);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: min(calc(100svh - 170px), 820px);
	padding-block: clamp(2.25rem, 1.25rem + 2.5vw, 4rem) var(--hero-pb);
	background-color: #2A2B45;
	color: var(--cream);
}
body .elementor .elementor-section.rd-hero > .elementor-container { width: 100%; }
.rd-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		radial-gradient(900px 600px at 72% 62%, rgba(255, 196, 102, 0.55), rgba(255, 158, 74, 0.18) 45%, transparent 70%),
		linear-gradient(90deg, rgba(21, 17, 14, 0.5) 0%, rgba(21, 17, 14, 0.18) 42%, transparent 62%),
		linear-gradient(180deg, #17213A 0%, #2E2C4C 22%, #5B3B5C 44%, #A75A5E 64%, #E3874A 82%, #F6BE68 100%);
}
.rd-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	top: 0;
	z-index: -1;
	/* Width-driven so the farm keeps its proportions; the SVG's top is open sky, so the
	   Den's chimney smoke can rise as high as it likes. */
	background: url("../img/hero-land.svg") no-repeat center bottom / 100% auto;
	pointer-events: none;
}
/* A few last stars fading out in the top of the sky. */
body .elementor .elementor-section.rd-hero > .elementor-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 38%;
	z-index: -1;
	background-image: var(--stars);
	background-size: 520px 520px;
	opacity: 0.8;
	-webkit-mask-image: linear-gradient(180deg, #000, transparent);
	mask-image: linear-gradient(180deg, #000, transparent);
	pointer-events: none;
}
body .elementor .elementor-section.rd-hero > .elementor-container { position: static; }
/* Drifting clouds and a flock of birds crossing now and then (animated inside the SVG). */
body .elementor .elementor-section.rd-hero > .elementor-container::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 75%;
	z-index: -1;
	background: url("../img/hero-sky.svg") no-repeat center top / cover;
	pointer-events: none;
}
@media (max-width: 1024px) {
	.rd-hero,
	body .elementor .elementor-section.rd-hero { --hero-pb: clamp(5rem, 3rem + 8vw, 8rem); min-height: 0; }
	.rd-hero::after { background-size: auto clamp(260px, 30vw + 140px, 420px); background-position: 75% bottom; }
	.rd-hero::before {
		background:
			radial-gradient(700px 520px at 50% 78%, rgba(255, 196, 102, 0.55), rgba(255, 158, 74, 0.18) 45%, transparent 70%),
			linear-gradient(180deg, #17213A 0%, #2E2C4C 18%, #5B3B5C 38%, #A75A5E 60%, #E3874A 80%, #F6BE68 100%);
	}
}
@media (max-height: 560px) and (orientation: landscape) {
	.rd-hero,
	body .elementor .elementor-section.rd-hero { min-height: 0; }
}

/* h1 in the selector: it must outrank the generic h1 size rule (0,3,2). */
body .elementor .rd-hero__title h1.elementor-heading-title {
	font-size: clamp(2.5rem, 1.2rem + 3.4vw, 4.4rem);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--cream);
	text-shadow: 0 4px 30px rgba(21, 17, 14, 0.45);
}
body .elementor .rd-hero__title .elementor-heading-title em {
	color: transparent;
	font-weight: 800;
	background: linear-gradient(180deg, #FFE7A8 0%, var(--honey) 45%, var(--ember) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	text-shadow: none;
	filter: drop-shadow(0 4px 18px rgba(240, 138, 60, 0.35));
}
body .elementor .rd-hero .rd-script .elementor-heading-title { color: var(--yolk-soft); text-shadow: 0 2px 14px rgba(21, 17, 14, 0.4); }
body .elementor .rd-hero .rd-eyebrow .elementor-heading-title { color: var(--cream); opacity: 0.92; }
body .elementor .rd-hero__lede p { max-width: 50ch; color: var(--cream); font-size: clamp(1.08rem, 1rem + 0.4vw, 1.3rem); text-shadow: 0 1px 12px rgba(21, 17, 14, 0.55); }
body .elementor .rd-hero__main > .elementor-widget-wrap { align-content: center; }
body .elementor .rd-hero__aside > .elementor-widget-wrap { justify-content: flex-end; align-content: flex-end; }
body .elementor .rd-hero__aside { align-self: stretch; }
@media (max-width: 1024px) {
	body .elementor .rd-hero__main > .elementor-widget-wrap { justify-content: center; text-align: center; }
	body .elementor .rd-hero__main .elementor-heading-title,
	body .elementor .rd-hero__lede p { margin-inline: auto; text-align: center; }
	body .elementor .rd-hero .elementor-widget.rd-eyebrow,
	body .elementor .rd-hero .elementor-widget.rd-script { display: flex; justify-content: center; }
	body .elementor .rd-hero .rd-script .elementor-heading-title { transform-origin: center; }
}

/* ------------------------------------------------------------------ hero rooster */

/* The bird is a button: tap or click him and he crows. main.js also has him crow on his own
   every few seconds while the hero is on screen (never with reduced motion, never in the editor). */
/* Sized to the screen's height so he always fits the first screen, and sunk by the hero's
   bottom padding so his post stands in the hills. */
/* He is drawn a little larger than his column and leans out toward the right edge, so he
   fills the sky beside the headline instead of standing below it. */
.rd-crow {
	position: relative;
	display: block;
	width: min(114%, 720px, calc(100svh - 120px));
	margin: 0 -10% calc(-1 * var(--hero-pb) + clamp(10px, 0.5vw + 6px, 18px)) auto;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.rd-crow:focus-visible { outline: 3px solid var(--honey); outline-offset: -6px; border-radius: 24px; }
.rd-crow .rd-rooster { display: block; width: 100%; height: auto; overflow: visible; }
.rd-crow__hint {
	position: absolute;
	left: 46%;
	top: -2%;
	translate: -50% 0;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: rgba(21, 17, 14, 0.55);
	color: var(--cream);
	font-family: var(--f-cond);
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0;
	transition: opacity 0.3s var(--ease);
	pointer-events: none;
	white-space: nowrap;
}
.rd-crow__hint { display: inline-flex; align-items: center; gap: 0.45em; }
.rd-crow__hint .rd-ico { width: 1.25em; height: 1.25em; color: var(--honey); }
@media (hover: hover) { .rd-crow:hover .rd-crow__hint { opacity: 1; } }
/* Touch screens have no hover: the hint stays up so people know he can be heard. */
@media (hover: none) { .rd-crow__hint { opacity: 0.92; top: 1%; } }
@media (max-width: 1024px) {
	.rd-crow { width: min(100%, 520px); margin: 1rem auto calc(-1 * var(--hero-pb) - 2px); }
}
/* Tablets: the rooster steps right so the Den on the hill shows clear of him on the left. */
@media (min-width: 768px) and (max-width: 1024px) {
	.rd-crow { width: min(62%, 480px); margin-left: auto; margin-right: 0; }
	.rd-hero::after { background-position: 80% bottom; }
}
/* Every animated part turns about a point given in the drawing's own units. */
.rd-rooster g { transform-box: view-box; }
.rd-rooster__lid { transform-origin: 205px 175px; transform: scaleY(0); }
.rd-rooster__front { transform-origin: 300px 340px; }
.rd-rooster__head { transform-origin: 238px 196px; }
.rd-rooster__beak-low { transform-box: view-box; transform-origin: 194px 188px; }
.rd-rooster__wattle { transform-origin: 196px 194px; }
.rd-rooster__hackles { transform-origin: 262px 210px; }
.rd-rooster__body { transform-origin: 300px 440px; }
.rd-rooster__tail { transform-origin: 398px 330px; }
.rd-rooster__rays { transform-origin: 330px 330px; }
.rd-rooster__sun,
.rd-rooster__glow { transform-origin: 330px 330px; }
.rd-rooster__pupil { transition: transform 0.25s var(--ease); }

@media (prefers-reduced-motion: no-preference) {
	html.js .rd-crow .rd-rooster__sun { animation: rd-sunrise 2.6s var(--ease) both; }
	html.js .rd-crow .rd-rooster__glow { animation: rd-sunrise 2.6s var(--ease) both, rd-glow 7s ease-in-out 2.6s infinite; }
	html.js .rd-crow .rd-rooster__rays { animation: rd-rays-in 3s var(--ease) both, rd-spin 140s linear infinite; }
	html.js .rd-crow .rd-rooster__cloud--a { animation: rd-cloud 34s ease-in-out infinite alternate; }
	html.js .rd-crow .rd-rooster__cloud--b { animation: rd-cloud 42s ease-in-out -12s infinite alternate-reverse; }
	html.js .rd-crow .rd-rooster__body { animation: rd-breathe 3.8s ease-in-out infinite; }
	html.js .rd-crow .rd-rooster__tail { animation: rd-tail 6.5s ease-in-out infinite; }
	html.js .rd-crow .rd-rooster__hackles { animation: rd-ruffle 7.5s ease-in-out infinite; }
	html.js .rd-crow .rd-rooster__head { animation: rd-look 11s var(--ease) infinite; }
	html.js .rd-crow .rd-rooster__wattle { animation: rd-wattle 11s var(--ease) infinite; }
	html.js .rd-crow .rd-rooster__lid { animation: rd-blink 5.2s linear infinite; }
	/* The crow: inhale, stretch up and back, beak open, hackles up; then settle. 3.6s, timed to
	   the recording (assets/audio/rooster-crow.mp3): its call starts at 1.1s, as the beak opens. */
	html.js .rd-rooster.is-crowing .rd-rooster__front { animation: rd-crow-front 3.6s var(--ease) both; }
	html.js .rd-rooster.is-crowing .rd-rooster__head { animation: rd-crow-head 3.6s var(--ease) both; }
	html.js .rd-rooster.is-crowing .rd-rooster__beak-low { animation: rd-crow-beak 3.6s ease-in-out both; }
	html.js .rd-rooster.is-crowing .rd-rooster__hackles { animation: rd-crow-hackles 3.6s var(--ease) both; }
	html.js .rd-rooster.is-crowing .rd-rooster__body { animation: rd-crow-body 3.6s var(--ease) both; }
	html.js .rd-rooster.is-crowing .rd-rooster__wattle { animation: rd-crow-wattle 3.6s ease-in-out both; }
	html.js .rd-rooster.is-crowing .rd-rooster__lid { animation: none; }
	html.js .rd-rooster.is-crowing .rd-rooster__glow { animation: rd-crow-glow 3.6s ease-in-out both; }
	/* Off screen (main.js), the idle loops rest. */
	.rd-crow.is-paused .rd-rooster * { animation-play-state: paused !important; }
}
@keyframes rd-sunrise { from { transform: translateY(90px) scale(0.94); opacity: 0.4; } to { transform: none; opacity: 1; } }
@keyframes rd-rays-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes rd-glow { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.05); opacity: 0.85; } }
@keyframes rd-cloud { from { transform: translateX(-18px); } to { transform: translateX(26px); } }
@keyframes rd-breathe { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.006, 1.016); } }
@keyframes rd-tail { 0%, 100% { transform: rotate(-1.4deg); } 50% { transform: rotate(1.6deg); } }
@keyframes rd-ruffle { 0%, 100% { transform: skewX(0); } 50% { transform: skewX(0.8deg); } }
/* Chickens move their heads in quick snaps and then hold still. */
@keyframes rd-look {
	0%, 18% { transform: rotate(0); }
	20%, 38% { transform: rotate(-5deg); }
	40%, 56% { transform: rotate(3deg) translate(-2px, 1px); }
	58%, 74% { transform: rotate(-2deg); }
	76%, 100% { transform: rotate(0); }
}
@keyframes rd-wattle {
	0%, 19% { transform: rotate(0); }
	21% { transform: rotate(6deg); } 24% { transform: rotate(-3deg); } 27%, 39% { transform: rotate(0); }
	41% { transform: rotate(-6deg); } 44% { transform: rotate(3deg); } 47%, 100% { transform: rotate(0); }
}
@keyframes rd-blink { 0%, 44%, 49%, 100% { transform: scaleY(0); } 46.5% { transform: scaleY(1); } }
@keyframes rd-crow-front {
	0% { transform: rotate(0); }
	14% { transform: rotate(-3deg); }
	28%, 86% { transform: rotate(6deg); }
	100% { transform: rotate(0); }
}
@keyframes rd-crow-head {
	0% { transform: rotate(0); }
	14% { transform: rotate(-8deg); }
	28% { transform: rotate(27deg); }
	42% { transform: rotate(24deg); }
	56% { transform: rotate(28deg); }
	72% { transform: rotate(25deg); }
	86% { transform: rotate(26deg); }
	100% { transform: rotate(0); }
}
@keyframes rd-crow-beak {
	0%, 27% { transform: rotate(0); }
	31% { transform: rotate(-24deg); }
	39% { transform: rotate(-15deg); }
	48% { transform: rotate(-26deg); }
	60% { transform: rotate(-19deg); }
	72% { transform: rotate(-25deg); }
	84% { transform: rotate(-14deg); }
	92%, 100% { transform: rotate(0); }
}
@keyframes rd-crow-hackles { 0%, 16% { transform: scale(1); } 30%, 86% { transform: scale(1.045, 1.03); } 100% { transform: scale(1); } }
@keyframes rd-crow-body { 0% { transform: scale(1); } 14% { transform: scale(1.03, 1.04); } 30%, 86% { transform: scale(1.01, 1.02); } 100% { transform: scale(1); } }
@keyframes rd-crow-wattle { 0%, 28% { transform: rotate(0); } 34% { transform: rotate(-12deg); } 46% { transform: rotate(8deg); } 58% { transform: rotate(-5deg); } 72% { transform: rotate(6deg); } 86%, 100% { transform: rotate(0); } }
@keyframes rd-crow-glow { 0%, 22% { transform: scale(1); opacity: 1; } 40% { transform: scale(1.1); opacity: 1; } 86% { transform: scale(1.06); } 100% { transform: scale(1); opacity: 1; } }

/* The chicks at the foot of the post peck at the grass, each on its own rhythm. */
.rd-rooster .rd-rooster__chick-body { transform-box: fill-box; transform-origin: 55% 100%; }
@media (prefers-reduced-motion: no-preference) {
	html.js .rd-crow .c1 .rd-rooster__chick-body { animation: rd-peck 3.4s ease-in-out infinite; }
	html.js .rd-crow .c2 .rd-rooster__chick-body { animation: rd-peck 4.1s ease-in-out -1.6s infinite; }
	html.js .rd-crow .c3 .rd-rooster__chick-body { animation: rd-peck 3.8s ease-in-out -0.7s infinite; }
}
@keyframes rd-peck {
	0%, 52% { transform: rotate(0); }
	58% { transform: rotate(32deg); }
	62% { transform: rotate(8deg); }
	67% { transform: rotate(34deg); }
	72%, 80% { transform: rotate(0); }
	86% { transform: rotate(-6deg); }
	92%, 100% { transform: rotate(0); }
}

/* A chalk A-frame sign in the grass by the post: today's lunch special, kept live by main.js. */
.rd-crow__sign {
	position: absolute;
	right: 3%;
	bottom: 3.5%;
	z-index: 2;
	display: grid;
	gap: 0.15rem;
	width: clamp(130px, 90px + 4vw, 176px);
	padding: 0.7rem 0.75rem 0.85rem;
	border: 5px solid #7A5634;
	border-radius: 6px;
	background: #24302B url("../img/textures/slate-700.webp") center / cover;
	box-shadow: 0 10px 18px rgba(21, 17, 14, 0.4), inset 0 0 0 1px rgba(0, 0, 0, 0.35);
	color: #FFFDF8;
	text-align: center;
	transform: rotate(4deg);
	transform-origin: bottom center;
	pointer-events: none;
}
.rd-crow__sign::before,
.rd-crow__sign::after {
	content: "";
	position: absolute;
	bottom: -26px;
	width: 6px;
	height: 30px;
	background: #6B4A2F;
	border-radius: 2px;
	z-index: -1;
}
.rd-crow__sign::before { left: 14%; transform: rotate(8deg); }
.rd-crow__sign::after { right: 14%; transform: rotate(-8deg); }
.rd-crow__sign-kicker { font-family: var(--f-cond); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--honey); }
.rd-crow__sign-title { font-family: var(--f-script); font-size: clamp(1.15rem, 0.9rem + 0.6vw, 1.45rem); font-weight: 700; line-height: 1.02; text-shadow: 0 0 5px rgba(255, 253, 248, 0.2); }
.rd-crow__sign-price { font-family: var(--f-display); font-weight: 700; font-size: 1.05rem; color: var(--honey); }
.rd-crow__sign.is-soldout .rd-crow__sign-title { font-size: 1rem; }
@media (max-width: 1024px) { .rd-crow__sign { right: 0; bottom: 5%; } }
@media (max-width: 480px) { .rd-crow__sign { width: 118px; padding: 0.55rem 0.6rem 0.7rem; } .rd-crow__sign-title { font-size: 1.05rem; } }

/* Hero proof row: open now, the Google rating, Facebook. */
.rd-proof { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.7rem; margin-top: 0.4rem; }
.rd-proof .rd-rating { gap: 0.6rem; padding: 0.35rem 0.9rem 0.35rem 0.4rem; }
.rd-proof .rd-rating__g { width: 32px; height: 32px; font-size: 1.05rem; }
.rd-proof .rd-rating__score { font-size: 1.4rem; }
/* On wide screens the top bar already shows open/closed; phones (no top bar) keep it here. */
@media (min-width: 768px) { .rd-proof .rd-status { display: none; } }
.rd-proof .rd-status { padding: 0.75em 1em 0.75em 0.85em; background: rgba(21, 17, 14, 0.42); font-size: 0.86rem; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rd-proof .rd-rating { background: rgba(21, 17, 14, 0.42); border-color: rgba(251, 244, 230, 0.18); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rd-proof__fb { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 1rem; border-radius: 999px; background: rgba(21, 17, 14, 0.42); color: var(--cream); font-family: var(--f-cond); font-size: 0.86rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rd-proof__fb b { font-family: var(--f-display); font-size: 1.2rem; letter-spacing: 0; color: var(--honey); }
.rd-proof__fb .rd-ico { color: #8FB4FF; }
.rd-proof__fb:hover { color: #fff; background: rgba(21, 17, 14, 0.6); }
@media (max-width: 1024px) { .rd-proof { justify-content: center; } }

/* ------------------------------------------------------------------ rating badge */

.rd-rating {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.55rem 1.1rem 0.55rem 0.6rem;
	border-radius: 999px;
	background: rgba(251, 244, 230, 0.08);
	border: 1px solid rgba(251, 244, 230, 0.14);
	color: var(--cream);
	text-decoration: none;
	transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease);
}
a.rd-rating:hover { background: rgba(251, 244, 230, 0.14); border-color: rgba(251, 244, 230, 0.3); color: var(--cream); }
.rd-rating__g {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: #4285F4;
	font-size: 1.3rem;
	flex: none;
}
.rd-rating__g .rd-ico { stroke: none; fill: currentColor; }
.rd-rating__g .rd-ico path:nth-child(1) { fill: #4285F4; }
.rd-rating__g .rd-ico path:nth-child(2) { fill: #34A853; }
.rd-rating__g .rd-ico path:nth-child(3) { fill: #FBBC05; }
.rd-rating__g .rd-ico path:nth-child(4) { fill: #EA4335; }
.rd-rating__score { font-family: var(--f-display); font-size: 1.7rem; line-height: 1; }
.rd-rating__meta { display: grid; gap: 0.15rem; line-height: 1.1; }
.rd-rating__count { font-family: var(--f-cond); font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.8; }
.rd-stars { display: inline-flex; gap: 2px; color: var(--honey); font-size: 0.95rem; line-height: 1; }
.rd-stars--rated { position: relative; color: rgba(251, 244, 230, 0.22); }
.rd-stars--rated .rd-stars__fill { position: absolute; inset: 0 auto 0 0; display: inline-flex; gap: 2px; width: var(--pct, 100%); overflow: hidden; color: var(--honey); white-space: nowrap; }
.rd-stars--rated .rd-stars__fill .rd-ico { flex: none; }
.rd-rating--light .rd-stars--rated { color: rgba(42, 33, 27, 0.16); }
.rd-rating--light .rd-stars--rated .rd-stars__fill { color: #E5A12F; }
.rd-rating--light { background: var(--paper); border-color: var(--line); color: var(--ink); box-shadow: var(--shadow-1); }
a.rd-rating--light:hover { background: #fff; border-color: var(--line); color: var(--ink); }
.rd-rating--light .rd-stars { color: #E5A12F; }
.rd-rating--lg { padding: 0.8rem 1.6rem 0.8rem 0.8rem; }
.rd-rating--lg .rd-rating__g { width: 54px; height: 54px; font-size: 1.7rem; }
.rd-rating--lg .rd-rating__score { font-size: 2.4rem; }
.rd-rating--lg .rd-stars { font-size: 1.15rem; }

/* ------------------------------------------------------------------ today card */

/* A diner order ticket taped to the page: today's date, the kitchen's status, the lunch
   special (live, with its sold-out state) and whatever else is on today. */
.rd-today {
	position: relative;
	width: min(100%, 440px);
	margin-inline: auto;
	padding: 1.7rem 1.6rem 1.5rem;
	border-radius: 4px 4px 0 0;
	background:
		repeating-linear-gradient(180deg, transparent 0 31px, rgba(194, 31, 46, 0.06) 31px 32px),
		var(--paper);
	color: var(--ink);
	box-shadow: var(--shadow-2);
	transform: rotate(1.2deg);
}
.rd-today::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -14px;
	width: 128px;
	height: 30px;
	transform: translateX(-50%) rotate(-3deg);
	background: rgba(246, 226, 176, 0.85);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.rd-today::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -12px;
	height: 13px;
	background: var(--paper);
	-webkit-mask: var(--torn) repeat-x 0 0 / 338px 13px;
	mask: var(--torn) repeat-x 0 0 / 338px 13px;
	transform: scaleY(-1);
}
.rd-today__top { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; flex-wrap: wrap; margin-bottom: 0.4rem; padding-bottom: 0.7rem; border-bottom: 2px solid var(--ink); }
.rd-today__title { margin: 0; font-family: var(--f-script); font-size: 2.2rem; font-weight: 700; line-height: 1; color: var(--red); }
.rd-today__date { margin: 0; font-family: var(--f-cond); font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.rd-today__row { display: flex; align-items: flex-start; gap: 0.8rem; padding: 0.8rem 0; border-top: 1.5px dashed var(--line); }
.rd-today__top + .rd-today__row { border-top: 0; }
.rd-today__icon {
	display: inline-grid;
	place-items: center;
	width: 2.3rem;
	height: 2.3rem;
	flex: none;
	border-radius: 50%;
	background: var(--ink);
	color: var(--honey);
	font-size: 1.1rem;
}
.rd-today__row--special .rd-today__icon { background: var(--red); color: #fff; }
.rd-today__body { display: grid; gap: 0.15rem; min-width: 0; }
.rd-today__label { font-family: var(--f-cond); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.rd-today__value { font-weight: 700; line-height: 1.3; }
.rd-today__value small { display: block; margin-top: 0.15rem; font-weight: 500; color: var(--muted); }
.rd-today__specials { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.3rem; }
.rd-today__specials li { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; line-height: 1.35; }
.rd-today__specials li[hidden] { display: none; }
.rd-today__specials em { flex: none; font-style: normal; font-family: var(--f-cond); font-weight: 600; font-size: 0.85rem; letter-spacing: 0.04em; color: var(--red-text); }
.rd-today .rd-status { background: rgba(42, 33, 27, 0.06); color: var(--ink); padding: 0.28em 0.75em; }
.rd-today .rd-status.is-open .rd-status__dot { background: var(--open); }
.rd-today .rd-status .rd-status__dot { background: var(--red); }
.rd-headflag { display: inline-flex; align-items: center; gap: 0.4em; font-family: var(--f-display); font-size: 1.28rem; font-weight: 700; line-height: 1.15; }
.rd-headflag.is-on { color: var(--ink); }
.rd-headflag.is-soldout { color: var(--red); font-family: var(--f-body); font-size: 1rem; }
.rd-headflag.is-off,
.rd-headflag.is-closed { font-family: var(--f-body); font-size: 1rem; color: var(--muted); }
@media (max-width: 1024px) { .rd-today { transform: none; } }

/* ------------------------------------------------------------------ polaroids & photo frames */

body .elementor .rd-collage > .elementor-widget-wrap {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: repeat(12, minmax(0, 1fr));
	aspect-ratio: 1 / 0.96;
	align-content: stretch;
}
body .elementor .rd-collage > .elementor-widget-wrap > .elementor-widget { margin: 0; width: auto; }
body .elementor .rd-collage .rd-polaroid--1 { grid-area: 1 / 1 / 9 / 9; z-index: 1; }
body .elementor .rd-collage .rd-polaroid--2 { grid-area: 4 / 6 / 12 / 13; z-index: 2; }
body .elementor .rd-collage .rd-polaroid--3 { grid-area: 7 / 1 / 13 / 7; z-index: 3; }

body .elementor .rd-polaroid img,
.rd-polaroid-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	padding: 0.65rem 0.65rem 2.4rem;
	border-radius: 3px;
	background: #fff;
	box-shadow: var(--shadow-2);
}
body .elementor .rd-polaroid { position: relative; }
body .elementor .rd-polaroid .elementor-image,
body .elementor .rd-polaroid > img,
body .elementor .rd-polaroid figure { height: 100%; margin: 0; }
body .elementor .rd-polaroid--1 img { transform: rotate(-4deg); }
body .elementor .rd-polaroid--2 img { transform: rotate(3.5deg); }
body .elementor .rd-polaroid--3 img { transform: rotate(-1.5deg); }
body .elementor .rd-polaroid::after {
	content: "";
	position: absolute;
	left: 50%;
	top: -10px;
	width: 34%;
	height: 26px;
	transform: translateX(-50%) rotate(-4deg);
	background: rgba(246, 226, 176, 0.82);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
	z-index: 2;
}
body .elementor .rd-polaroid--2::after { transform: translateX(-50%) rotate(5deg); }
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
	body .elementor .rd-polaroid img { transition: transform 0.5s var(--ease); }
	body .elementor .rd-collage:hover .rd-polaroid--1 img { transform: rotate(-6deg) translate(-6px, -4px); }
	body .elementor .rd-collage:hover .rd-polaroid--2 img { transform: rotate(5deg) translate(6px, 2px); }
	body .elementor .rd-collage:hover .rd-polaroid--3 img { transform: rotate(-3deg) translate(-4px, 6px); }
}

body .elementor .rd-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius);
	box-shadow: var(--shadow-2);
}
body .elementor .rd-photo--tall img { aspect-ratio: 4 / 5; }
body .elementor .rd-photo--frame img { border: 8px solid #fff; border-radius: 4px; }
body .elementor :where(.on-dark) .rd-photo--frame img { border-color: var(--paper); }
body .elementor .rd-photo--tilt img { transform: rotate(-2deg); }

/* Rotating stamp (injected by main.js into .rd-stamped photos). */
.rd-stamped { position: relative; }
.rd-stamp {
	position: absolute;
	right: -18px;
	top: -26px;
	z-index: 4;
	width: clamp(118px, 8rem + 3vw, 168px);
	aspect-ratio: 1;
	pointer-events: none;
}
.rd-stamp__base,
.rd-stamp__ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.rd-stamp__ring > svg { display: block; width: 100%; height: 100%; }
/* The shadow sits on the still base; only the lettering ring (its own layer) turns. */
.rd-stamp__base { filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.35)); }
.rd-stamp__ring { animation: rd-spin 28s linear infinite; will-change: transform; }
.rd-stamp text { font-family: var(--f-cond); font-weight: 600; letter-spacing: 0.22em; font-size: 12.5px; text-transform: uppercase; fill: var(--cream); }
@keyframes rd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rd-stamp__ring { animation: none; } }
@media (max-width: 767px) { .rd-stamp { right: -6px; top: -20px; } }

/* ------------------------------------------------------------------ price tags, sauces, rib report */

.rd-tags { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.rd-tag {
	position: relative;
	display: grid;
	place-items: center;
	align-content: center;
	gap: 0.15rem;
	min-width: 132px;
	padding: 1.05rem 1.6rem;
	background: var(--red);
	color: #fff;
	text-align: center;
	clip-path: polygon(16px 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 16px 100%, 0 50%);
}
.rd-tag::before {
	content: "";
	position: absolute;
	inset: 4px;
	border: 1.5px dashed rgba(255, 255, 255, 0.45);
	clip-path: inherit;
	pointer-events: none;
}
.rd-tag__label { font-family: var(--f-cond); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.92; }
.rd-tag__price { font-family: var(--f-display); font-size: 2rem; line-height: 1; }
.rd-tag--honey { background: var(--honey); color: var(--char); }
.rd-tag--honey::before { border-color: rgba(21, 17, 14, 0.3); }

.rd-headreport {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.55rem 1.15rem 0.55rem 0.6rem;
	border-radius: 999px;
	background: rgba(251, 244, 230, 0.08);
	border: 1px solid rgba(251, 244, 230, 0.18);
	font-family: var(--f-cond);
	font-size: 0.98rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cream);
}
.rd-headreport__icon {
	display: inline-grid;
	place-items: center;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	background: var(--honey);
	color: var(--char);
}
.rd-headreport.is-soldout .rd-headreport__icon { background: #E5524F; color: #fff; }
.rd-headreport strong { color: var(--honey); font-weight: 600; }
.rd-headreport.is-soldout strong { color: #FF9C96; }
.rd-headreport--light { background: var(--paper); border-color: var(--line); color: var(--ink); }
.rd-headreport--light strong { color: var(--red-text); }

/* ------------------------------------------------------------------ specials board */

/* The specials board is a green slate chalkboard in a wood frame: a chalk border with scrolled
   corners, the logo's weathervane rooster chalked at the top, a wooden chalk tray along the
   bottom, and each special chalked inside a double rule. Today's special is ringed in yolk. */
body .elementor .elementor-section.rd-board,
.rd-board {
	--frame: clamp(10px, 6px + 0.6vw, 16px);
	isolation: isolate;
	padding-top: calc(var(--sec-y) + clamp(4.5rem, 3rem + 4vw, 7rem));
	padding-bottom: calc(var(--sec-y) + 1.4rem);
	background-color: #1F2B26;
	background-image:
		radial-gradient(125% 95% at 50% 42%, transparent 55%, rgba(0, 0, 0, 0.45) 100%),
		url("../img/textures/slate.webp");
	background-size: auto, cover;
	background-position: center;
	box-shadow:
		inset 0 0 0 var(--frame) #6B4A2F,
		inset 0 0 0 calc(var(--frame) + 2px) #3F2A1A,
		inset 0 0 0 calc(var(--frame) + 3px) rgba(255, 255, 255, 0.05),
		inset 0 18px 30px -8px rgba(0, 0, 0, 0.45);
}
/* Wood grain on the frame. */
body .elementor .elementor-section.rd-board::after,
.rd-board::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	border: var(--frame) solid transparent;
	border-image: repeating-linear-gradient(90deg, #73502F 0 7px, #694629 7px 9px, #7A5634 9px 16px, #6A472A 16px 18px) 1;
	opacity: 0.9;
}
/* The chalk border with its four scrolled corners. */
body .elementor .elementor-section.rd-board::before,
.rd-board::before {
	content: "";
	position: absolute;
	inset: calc(var(--frame) + clamp(14px, 1vw + 8px, 26px));
	z-index: -1;
	pointer-events: none;
	border: 2px solid rgba(255, 253, 248, 0.15);
	border-radius: 16px;
	background:
		url("../img/patterns/chalk-corner-tl.svg") left -8px top -8px / clamp(110px, 8vw + 40px, 180px) no-repeat,
		url("../img/patterns/chalk-corner-tr.svg") right -8px top -8px / clamp(110px, 8vw + 40px, 180px) no-repeat,
		url("../img/patterns/chalk-corner-bl.svg") left -8px bottom -8px / clamp(110px, 8vw + 40px, 180px) no-repeat,
		url("../img/patterns/chalk-corner-br.svg") right -8px bottom -8px / clamp(110px, 8vw + 40px, 180px) no-repeat;
}
/* The chalked weathervane rooster, centred above the heading. */
body .elementor .elementor-section.rd-board > .elementor-container::before,
.rd-board__rooster {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(-1 * clamp(4.6rem, 3rem + 4vw, 7.2rem));
	width: clamp(150px, 100px + 6vw, 230px);
	aspect-ratio: 1.6;
	translate: -50% 0;
	background: url("../img/patterns/chalk-rooster.svg") center / contain no-repeat;
	pointer-events: none;
}
/* A wooden chalk tray along the bottom of the board, with a few sticks of chalk. */
body .elementor .elementor-section.rd-board > .elementor-container::after,
.rd-board__tray {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(-1 * (var(--sec-y) + 1.4rem) + var(--frame));
	width: min(100vw - 2 * var(--frame), 100% + 8vw);
	height: 16px;
	translate: -50% 0;
	border-radius: 3px 3px 0 0;
	background:
		radial-gradient(ellipse 22px 4px at 22% 30%, #FFFDF8 60%, transparent 62%),
		radial-gradient(ellipse 14px 4px at 26% 32%, #F6E7B8 60%, transparent 62%),
		radial-gradient(ellipse 18px 4px at 71% 30%, #F2C9C4 60%, transparent 62%),
		radial-gradient(ellipse 8px 3px at 74.5% 34%, #FFFDF8 60%, transparent 62%),
		linear-gradient(180deg, #8A6340 0 35%, #6B4A2F 35% 100%);
	box-shadow: 0 -6px 14px rgba(255, 253, 248, 0.06), 0 3px 6px rgba(0, 0, 0, 0.45);
	pointer-events: none;
}
body .elementor .elementor-section.rd-board > .elementor-container { position: relative; }
.rd-specials {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 0.6rem + 1.4vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.rd-specials--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rd-special {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1.6rem 1.5rem 1.4rem;
	border: 1.5px solid rgba(255, 253, 248, 0.3);
	border-radius: 16px;
	outline: 1px solid rgba(255, 253, 248, 0.13);
	outline-offset: -8px;
	background: radial-gradient(120% 80% at 30% 0%, rgba(255, 253, 248, 0.05), transparent 70%);
	color: var(--cream);
	transition: border-color 0.3s var(--ease), background-color 0.3s var(--ease), translate 0.3s var(--ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.rd-special:hover { translate: 0 -3px; border-color: rgba(255, 253, 248, 0.55); }
}
.rd-special__day {
	align-self: flex-start;
	font-family: var(--f-cond);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--honey);
}
.rd-special__head { display: flex; align-items: center; gap: 0.75rem; }
.rd-special__icon {
	display: inline-grid;
	place-items: center;
	width: 2.7rem;
	height: 2.7rem;
	flex: none;
	border: 1.5px solid rgba(251, 244, 230, 0.45);
	border-radius: 50%;
	color: var(--cream);
	font-size: 1.3rem;
}
.rd-special__title { margin: 0; font-family: var(--f-script); font-size: clamp(1.75rem, 1.4rem + 0.8vw, 2.2rem); font-weight: 700; line-height: 1; color: #FFFDF8; text-shadow: 0 0 6px rgba(255, 253, 248, 0.18); }
.rd-special__lines { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.45rem; color: rgba(251, 244, 230, 0.86); }
.rd-special__lines li { position: relative; padding-left: 1.1rem; line-height: 1.45; }
.rd-special__lines li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0.42em;
	height: 0.42em;
	border-radius: 50%;
	background: var(--honey);
}
.rd-special__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin-top: auto; padding-top: 0.85rem; border-top: 1px solid rgba(255, 253, 248, 0.16); }
.rd-special__price { font-family: var(--f-display); font-weight: 700; font-size: 1.45rem; color: var(--honey); line-height: 1; }
.rd-special__note { font-family: var(--f-cond); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(251, 244, 230, 0.7); text-align: right; }
.rd-special__today {
	position: absolute;
	top: -15px;
	right: 14px;
	display: none;
	padding: 0.15rem 0.9rem 0.25rem;
	border-radius: 999px;
	background: var(--honey);
	color: var(--char);
	font-family: var(--f-script);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.1;
	transform: rotate(4deg);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
}
.rd-special.is-today { border: 2px solid var(--honey); outline-color: rgba(246, 182, 55, 0.35); background: radial-gradient(120% 80% at 30% 0%, rgba(246, 182, 55, 0.12), transparent 70%); }
.rd-special.is-today .rd-special__today { display: block; }
.rd-special.is-soldout .rd-special__price { text-decoration: line-through; opacity: 0.6; }
.rd-special .rd-soldout-stamp { top: auto; bottom: 3.4rem; right: 1rem; }
@media (max-width: 1024px) { .rd-specials { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rd-specials,
	.rd-specials--3 { grid-template-columns: 1fr; } }
.rd-board-note { margin: 2.2rem auto 0; text-align: center; color: rgba(251, 244, 230, 0.8); font-family: var(--f-cond); letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.92rem; }
.rd-board-note a { color: var(--honey); }

/* ------------------------------------------------------------------ dish cards */

.rd-dishes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.1rem, 0.7rem + 1.4vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.rd-dish {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: var(--shadow-1);
	transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.rd-dish:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
	.rd-dish:hover .rd-dish__img img { transform: scale(1.05); }
}
.rd-dish__img {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background:
		url("../img/brand/mark.svg") no-repeat center 46% / 34% auto,
		radial-gradient(120% 90% at 50% 45%, transparent 50%, rgba(0, 0, 0, 0.45) 100%),
		var(--chalk) center / cover,
		var(--smoke);
}
/* No photo yet: the dish's name is chalked across the board instead. */
.rd-dish__chalk {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 0.9rem;
	margin: 0;
	font-family: var(--f-script);
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: rgba(255, 253, 248, 0.9);
}
.rd-dish__img img,
body .elementor .rd-dish__img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 0.7s var(--ease); }
.rd-dish__img picture { display: contents; }
.rd-dish__badge {
	position: absolute;
	left: 1rem;
	top: 1rem;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	background: rgba(21, 17, 14, 0.82);
	color: var(--honey);
	font-family: var(--f-cond);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.rd-dish__body { display: flex; flex-direction: column; gap: 0.55rem; padding: 1.35rem 1.4rem 1.5rem; flex: 1; }
.rd-dish__top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.rd-dish__name { margin: 0; font-family: var(--f-display); font-weight: 700; font-size: 1.32rem; line-height: 1.1; }
.rd-dish__price { font-family: var(--f-display); font-size: 1.25rem; font-weight: 700; color: var(--red-text); white-space: nowrap; }
.rd-dish__desc { margin: 0; color: var(--muted); font-size: 0.98rem; line-height: 1.5; }
.rd-dish__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: auto; padding-top: 0.4rem; }
.rd-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	background: rgba(42, 33, 27, 0.06);
	color: var(--ink);
	font-family: var(--f-cond);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}
.rd-pill .rd-ico { font-size: 0.95em; }
.rd-pill--days { background: rgba(240, 138, 60, 0.14); color: #8A3F10; }
.rd-pill--signature { background: var(--red); color: #fff; }
.rd-pill--favorite { background: var(--honey); color: var(--char); }
.rd-pill--house { background: rgba(46, 125, 79, 0.12); color: #22603B; }
.rd-pill--new { background: var(--ink); color: var(--honey); }
.rd-pill--spicy { background: rgba(194, 31, 46, 0.12); color: var(--red-dark); }
.rd-pill--seasonal { background: rgba(107, 85, 72, 0.14); color: var(--ink); }

/* Sold-out stamp (painted live by main.js). */
.rd-soldout-stamp {
	position: absolute;
	right: 0.9rem;
	top: 0.9rem;
	z-index: 3;
	display: none;
	padding: 0.4rem 0.75rem;
	border: 3px solid var(--red);
	border-radius: 6px;
	background: rgba(255, 253, 248, 0.92);
	color: var(--red);
	font-family: var(--f-display);
	font-size: 0.92rem;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transform: rotate(-8deg);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.is-soldout .rd-soldout-stamp { display: inline-block; }
.rd-dish.is-soldout .rd-dish__img img { filter: grayscale(0.85) brightness(0.9); }
@media (max-width: 1024px) { .rd-dishes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rd-dishes { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ two doors */

body .elementor .rd-doors > .elementor-container { gap: clamp(1rem, 0.6rem + 1.4vw, 2rem); flex-wrap: nowrap; }
body .elementor .rd-door > .elementor-widget-wrap {
	position: relative;
	height: 100%;
	padding: clamp(1.75rem, 1.2rem + 2vw, 3rem);
	border-radius: var(--radius);
	overflow: hidden;
	align-content: flex-start;
	isolation: isolate;
}
body .elementor .rd-door--family > .elementor-widget-wrap { background: var(--paper); box-shadow: var(--shadow-1); color: var(--ink); }
body .elementor .rd-door--bar > .elementor-widget-wrap { background: var(--smoke); background-image: radial-gradient(600px 300px at 100% 0%, rgba(240, 138, 60, 0.2), transparent 70%); color: var(--cream); box-shadow: var(--shadow-2); }
body .elementor .rd-door .elementor-widget:first-child { width: auto; }
body .elementor .rd-door-icon img { width: 74px; height: auto; }
@media (max-width: 1024px) {
	body .elementor .rd-doors > .elementor-container { flex-wrap: wrap; }
}

/* ------------------------------------------------------------------ features (image-box widgets) */

body .elementor .rd-feature .elementor-image-box-wrapper { display: flex; flex-direction: column; align-items: flex-start; gap: 0.9rem; text-align: left; }
body .elementor .rd-feature .elementor-image-box-img { margin: 0; }
body .elementor .rd-feature .elementor-image-box-img img { width: 76px; height: auto; border-radius: 0; }
body .elementor .rd-feature .elementor-image-box-title { margin: 0; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.12; color: var(--ink); }
body .elementor :where(.on-dark) .rd-feature .elementor-image-box-title { color: var(--cream); }
body .elementor .rd-feature .elementor-image-box-description { margin: 0; color: var(--muted); }
body .elementor :where(.on-dark) .rd-feature .elementor-image-box-description { color: rgba(251, 244, 230, 0.8); }
body .elementor .rd-feature-card > .elementor-widget-wrap {
	height: 100%;
	padding: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: var(--shadow-1);
	align-content: flex-start;
}
body .elementor :where(.on-dark) .rd-feature-card > .elementor-widget-wrap { background: rgba(251, 244, 230, 0.05); box-shadow: inset 0 0 0 1px rgba(251, 244, 230, 0.1); }
body .elementor .rd-features > .elementor-container { gap: clamp(1rem, 0.6rem + 1.2vw, 1.75rem); flex-wrap: nowrap; }
@media (max-width: 1024px) {
	body .elementor .rd-features > .elementor-container { flex-wrap: wrap; }
}

/* Catering occasions: one card per column, wrapping into even rows of three (two on tablets).
   Columns in a row stretch to the tallest card, so every row lines up. */
body .elementor .rd-occasions > .elementor-container { --rd-card-gap: clamp(1rem, 0.6rem + 1.2vw, 1.75rem); flex-wrap: wrap; gap: var(--rd-card-gap); }
@media (min-width: 1025px) {
	body .elementor .rd-occasions > .elementor-container > .elementor-column { width: calc((100% - 2 * var(--rd-card-gap)) / 3); }
}
@media (min-width: 768px) and (max-width: 1024px) {
	body .elementor .rd-occasions > .elementor-container > .elementor-column { width: calc((100% - var(--rd-card-gap)) / 2); }
}
body .elementor .rd-occasions .rd-feature-card > .elementor-widget-wrap {
	position: relative;
	overflow: hidden;
	padding: clamp(1.25rem, 0.95rem + 0.8vw, 1.7rem) clamp(1.2rem, 0.9rem + 0.8vw, 1.6rem);
	transition: translate 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
/* A red rule slides in along the bottom edge on hover. */
body .elementor .rd-occasions .rd-feature-card > .elementor-widget-wrap::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--ease);
}
@media (hover: hover) {
	body .elementor .rd-occasions .rd-feature-card > .elementor-widget-wrap:hover { translate: 0 -3px; box-shadow: 0 0 0 1px rgba(42, 33, 27, 0.06), var(--shadow-2); }
	body .elementor .rd-occasions .rd-feature-card > .elementor-widget-wrap:hover::after { transform: none; }
}
/* Icon beside the words. */
body .elementor .rd-feature--row .elementor-image-box-wrapper { flex-direction: row; align-items: flex-start; gap: 1rem; }
body .elementor .rd-feature--row .elementor-image-box-img { flex: none; width: 60px; margin: 0; }
body .elementor .rd-feature--row .elementor-image-box-img img { width: 60px; }
body .elementor .rd-feature--row .elementor-image-box-content { flex: 1; min-width: 0; padding-top: 0.15rem; }
body .elementor .rd-feature--row .elementor-image-box-title { margin-bottom: 0.35rem; font-size: clamp(1.05rem, 0.96rem + 0.28vw, 1.18rem); text-wrap: balance; }
body .elementor .rd-feature--row .elementor-image-box-description { line-height: 1.5; }

/* Numbered steps: centered, joined by a dashed trail; a vertical trail once they stack. */
body .elementor .rd-steps > .elementor-container { --rd-steps-gap: clamp(1.25rem, 0.5rem + 2.2vw, 2.75rem); counter-reset: rd-step; gap: var(--rd-steps-gap); flex-wrap: nowrap; }
body .elementor .rd-step > .elementor-widget-wrap { position: relative; padding-top: 4.6rem; counter-increment: rd-step; align-content: flex-start; justify-content: center; text-align: center; }
body .elementor .rd-step .elementor-heading-title { text-align: inherit; }
body .elementor .rd-step .elementor-widget-text-editor p { max-width: 34ch; margin-inline: auto; }
body .elementor .rd-step:not(:last-child) > .elementor-widget-wrap::after {
	content: "";
	position: absolute;
	top: 1.55rem;
	left: calc(50% + 2.6rem);
	width: calc(100% + var(--rd-steps-gap) - 5.2rem);
	border-top: 2px dashed rgba(194, 31, 46, 0.45);
}
body .elementor .rd-step > .elementor-widget-wrap::before {
	content: counter(rd-step, decimal-leading-zero);
	position: absolute;
	left: 50%;
	top: 0;
	translate: -50% 0;
	display: grid;
	place-items: center;
	width: 3.6rem;
	height: 3.6rem;
	background: var(--red);
	color: #fff;
	font-family: var(--f-display);
	font-size: 1.35rem;
	border-radius: 50%;
}
@media (max-width: 1024px) {
	body .elementor .rd-steps > .elementor-container { flex-wrap: wrap; }
	/* Stacked, the trail sits centred under its heading instead of hugging the left edge
	   (outranks the boxed-container width rule further down). */
	body .elementor .elementor-section.elementor-section-boxed.rd-steps > .elementor-container { max-width: 34rem; margin-inline: auto; }
	body .elementor .rd-step > .elementor-widget-wrap { min-height: 3.15rem; padding: 0.3rem 0 0 4.75rem; justify-content: flex-start; text-align: left; }
	body .elementor .rd-step > .elementor-widget-wrap::before { left: 0; translate: none; }
	body .elementor .rd-step .elementor-widget-text-editor p { margin-inline: 0; }
	body .elementor .rd-step:not(:last-child) > .elementor-widget-wrap::after {
		top: 3.6rem;
		bottom: calc(0.35rem - var(--rd-steps-gap));
		left: 1.8rem;
		width: 0;
		border-top: 0;
		border-left: 2px dashed rgba(194, 31, 46, 0.45);
	}
}

/* ------------------------------------------------------------------ reviews */

.rd-reviews { column-count: 3; column-gap: var(--rd-gap); margin: 0; }
.rd-reviews--2 { column-count: 2; }
.rd-reviews > .rd-review { break-inside: avoid; margin: 0 0 var(--rd-gap); }
.rd-review {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	padding: 1.6rem 1.6rem 1.4rem;
	border-radius: var(--radius);
	background: var(--paper);
	color: var(--ink);
	box-shadow: var(--shadow-1);
}
:where(.on-dark) .rd-review { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25), 0 18px 40px rgba(0, 0, 0, 0.3); }
.rd-review::before {
	content: "”";
	position: absolute;
	right: 1.1rem;
	top: 0.2rem;
	font-family: var(--f-display);
	font-size: 4.5rem;
	line-height: 1;
	color: rgba(194, 31, 46, 0.14);
	pointer-events: none;
}
.rd-review__top { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.rd-review .rd-stars { color: #E5A12F; font-size: 1rem; }
.rd-review__src { display: inline-flex; align-items: center; gap: 0.35rem; font-family: var(--f-cond); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.rd-review__text { margin: 0; font-size: 1.02rem; line-height: 1.6; }
.rd-review__text p { margin: 0 0 0.6em; }
.rd-review__text p:last-child { margin: 0; }
.rd-review__more { display: inline-flex; align-items: center; gap: 0.35rem; font-family: var(--f-cond); font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; }
.rd-review__by { display: flex; align-items: center; gap: 0.75rem; padding-top: 0.9rem; border-top: 1.5px dashed var(--line); }
.rd-review__avatar {
	display: inline-grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	flex: none;
	background: var(--ink);
	color: var(--honey);
	font-family: var(--f-display);
	font-size: 1.05rem;
	border-radius: 50%;
}
.rd-review__who { display: grid; line-height: 1.2; }
.rd-review__name { font-weight: 700; }
.rd-review__meta { font-size: 0.85rem; color: var(--muted); }
.rd-review__reply { padding: 0.8rem 1rem; border-radius: var(--radius-sm); background: rgba(42, 33, 27, 0.05); font-size: 0.95rem; }
.rd-review__reply-label { display: block; font-family: var(--f-cond); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 0.2rem; }
.rd-reviews-actions { margin-top: 1rem; }
@media (max-width: 1024px) { .rd-reviews { column-count: 2; } }
@media (max-width: 680px) { .rd-reviews,
	.rd-reviews--2 { column-count: 1; } }

/* ------------------------------------------------------------------ CTA band */

/* Rooster red with a vintage diner sunburst behind the words and grain-sack hems. */
body .elementor .elementor-section.rd-cta,
.rd-cta {
	isolation: isolate;
	overflow: hidden;
	background-color: var(--red);
	background-image:
		radial-gradient(60% 80% at 50% 50%, rgba(255, 210, 120, 0.22), transparent 70%),
		radial-gradient(800px 400px at 100% 100%, rgba(21, 17, 14, 0.35), transparent 70%);
	color: #fff;
}
body .elementor .rd-cta > .elementor-container::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: max(140vw, 1600px);
	aspect-ratio: 1;
	z-index: -1;
	translate: -50% -50%;
	background: var(--sunburst) center / contain no-repeat;
	opacity: 0.07;
	pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
	body .elementor .rd-cta > .elementor-container::before { animation: rd-spin 160s linear infinite; }
}
body .elementor .rd-cta > .elementor-container { position: static; }
body .elementor .rd-cta::before,
.rd-cta::before,
body .elementor .rd-cta::after,
.rd-cta::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 14px;
	z-index: 1;
	background-color: var(--cream);
	background-image: var(--ticking);
	background-size: 100% 100%;
}
body .elementor .rd-cta::before,
.rd-cta::before { top: 0; }
body .elementor .rd-cta::after,
.rd-cta::after { bottom: 0; }
body .elementor :where(.rd-cta) .elementor-widget-heading .elementor-heading-title { color: #fff; }
body .elementor :where(.rd-cta) .rd-script .elementor-heading-title { color: var(--yolk-soft); }
body .elementor :where(.rd-cta) .rd-prose { color: rgba(255, 255, 255, 0.94); }
body .elementor .rd-cta .rd-btn-ghost .elementor-button { border-color: rgba(255, 255, 255, 0.75); color: #fff; }
body .elementor .rd-cta .rd-btn-ghost .elementor-button:hover { background: #fff; border-color: #fff; color: var(--red-dark); }
body .elementor .rd-cta .elementor-widget-button .elementor-button:not(:where(.rd-btn-ghost *)) { background: var(--char); border-color: var(--char); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3); }
body .elementor .rd-cta .elementor-widget-button .elementor-button:not(:where(.rd-btn-ghost *)):hover { background: #000; border-color: #000; }
/* The big text-club keyword, set like a hand-painted sign. */
body .elementor .rd-keyword .elementor-heading-title {
	display: inline-block;
	padding: 0.1em 0.45em 0.16em;
	border: 3px dashed rgba(255, 255, 255, 0.55);
	border-radius: 14px;
	font-family: var(--f-cond);
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--yolk-soft);
}

/* ------------------------------------------------------------------ hours, contact, map */

.rd-hours { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.rd-hours__row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px dashed var(--line); }
.rd-hours__row:last-child { border-bottom: 0; }
.rd-hours__day { font-family: var(--f-cond); font-size: 1rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.rd-hours__time { font-weight: 600; text-align: right; }
.rd-hours__row.is-closed .rd-hours__time { color: var(--muted); font-weight: 400; }
.rd-hours__row.is-today { position: relative; color: var(--red); }
.rd-hours__row.is-today .rd-hours__day::after { content: " · today"; font-size: 0.78em; letter-spacing: 0.12em; }
:where(.on-dark) .rd-hours__row { border-bottom-color: rgba(251, 244, 230, 0.14); }
:where(.on-dark) .rd-hours__row.is-today { color: var(--honey); }
:where(.on-dark) .rd-hours__row.is-closed .rd-hours__time { color: rgba(251, 244, 230, 0.6); }
.rd-hours-note { margin: 0.6rem 0 0; font-size: 0.92rem; color: var(--muted); }
.rd-closure-note {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	margin: 0 0 1rem;
	padding: 0.75rem 0.9rem;
	border-radius: var(--radius-sm);
	background: rgba(194, 31, 46, 0.1);
	color: var(--red-dark);
	font-weight: 600;
	line-height: 1.4;
}
:where(.on-dark) .rd-closure-note { background: rgba(229, 82, 79, 0.16); color: #FFB4A8; }

.rd-hours-card {
	padding: clamp(1.4rem, 1rem + 1.4vw, 2.1rem);
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: var(--shadow-1);
	color: var(--ink);
}
.rd-hours-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; margin-bottom: 0.9rem; }
.rd-hours-card__title { margin: 0; font-family: var(--f-display); font-size: 1.45rem; }

.rd-contact { display: grid; gap: 0.9rem; margin: 0; padding: 0; list-style: none; }
.rd-contact li { display: flex; align-items: flex-start; gap: 0.85rem; line-height: 1.45; }
.rd-contact__icon {
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	flex: none;
	background: var(--red);
	color: #fff;
	font-size: 1.1rem;
	border-radius: 50%;
}
.rd-contact__label { display: block; font-family: var(--f-cond); font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
:where(.on-dark) .rd-contact__label { color: rgba(251, 244, 230, 0.65); }
.rd-contact a { color: inherit; font-weight: 700; text-decoration: none; }
.rd-contact a:hover { color: var(--red); }
:where(.on-dark) .rd-contact a:hover { color: var(--honey); }
.rd-contact__note { font-size: 0.95rem; color: var(--muted); }
:where(.on-dark) .rd-contact__note { color: rgba(251, 244, 230, 0.72); }

.rd-map {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--kraft);
	box-shadow: var(--shadow-2);
	aspect-ratio: 4 / 3.2;
	border: 8px solid #fff;
}
.rd-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: sepia(0.25) saturate(0.9) contrast(1.02); }
.rd-map__pin {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.6rem 1rem 0.6rem 0.75rem;
	border-radius: 999px;
	background: var(--smoke);
	color: var(--cream);
	font-family: var(--f-cond);
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	text-decoration: none;
	box-shadow: var(--shadow-dark);
}
.rd-map__pin .rd-ico { color: var(--honey); }
.rd-map__pin:hover { background: var(--red); color: #fff; }
.rd-map__pin:hover .rd-ico { color: #fff; }

/* Info cards (Visit page) */
.rd-info { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--rd-gap); margin: 0; padding: 0; list-style: none; }
.rd-info__card {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 1.6rem 1.5rem;
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: var(--shadow-1);
}
.rd-info__icon {
	display: inline-grid;
	place-items: center;
	width: 3.1rem;
	height: 3.1rem;
	margin-bottom: 0.3rem;
	background: var(--red);
	color: #fff;
	font-size: 1.35rem;
	border-radius: 50%;
}
.rd-info__title { margin: 0; font-family: var(--f-display); font-size: 1.25rem; }
.rd-info__text { margin: 0; color: var(--muted); line-height: 1.5; }
.rd-info__hours span { display: block; }
.rd-info__hours b { font-weight: 600; color: var(--ink); }
.rd-info__link { margin-top: auto; font-family: var(--f-cond); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.9rem; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; }
.rd-info__link:hover { text-decoration: underline; }
@media (max-width: 1024px) { .rd-info { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rd-info { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ roles (careers) */

/* "Help wanted" tickets pinned to the page: each job on ruled order-pad paper with a brass tack,
   a scalloped tear at the bottom and an Apply link. Jobs switched to "Hiring now" in the admin
   get a yolk tag and a red top edge. They wrap and centre, so any number of jobs sits evenly. */
.rd-roles {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.6rem, 1rem + 2vw, 2.6rem) clamp(1.1rem, 0.7rem + 1.4vw, 2rem);
	margin: clamp(1.4rem, 1rem + 1.5vw, 2.4rem) 0 0;
	padding: 0;
	list-style: none;
}
.rd-role {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	width: min(100%, 340px);
	padding: 1.7rem 1.5rem 1.3rem;
	border-top: 5px solid var(--line);
	border-radius: 4px 4px 0 0;
	background:
		repeating-linear-gradient(180deg, transparent 0 29px, rgba(31, 45, 69, 0.06) 29px 30px),
		var(--paper);
	box-shadow: 0 1px 2px rgba(42, 33, 27, 0.1), 0 16px 34px rgba(42, 33, 27, 0.14);
	transition: translate 0.3s var(--ease), box-shadow 0.3s var(--ease), rotate 0.3s var(--ease);
}
.rd-role:nth-child(3n + 1) { rotate: -1deg; }
.rd-role:nth-child(3n + 2) { rotate: 0.7deg; }
.rd-role:nth-child(3n + 3) { rotate: -0.4deg; }
.rd-role.is-hiring { border-top-color: var(--red); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.rd-role:hover { rotate: 0deg; translate: 0 -4px; box-shadow: 0 1px 2px rgba(42, 33, 27, 0.1), 0 24px 44px rgba(42, 33, 27, 0.2); }
}
/* the tack */
.rd-role::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -13px;
	width: 16px;
	height: 16px;
	margin-left: -8px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #FFE7A8, #E0A43A 55%, #8A5A14 100%);
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
}
/* the tear */
.rd-role::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -11px;
	height: 12px;
	background: var(--paper);
	-webkit-mask: var(--torn) repeat-x 0 0 / 338px 12px;
	mask: var(--torn) repeat-x 0 0 / 338px 12px;
	transform: scaleY(-1);
}
.rd-role__head { display: flex; align-items: center; gap: 0.85rem; }
.rd-role__icon {
	display: inline-grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	flex: none;
	border-radius: 50%;
	background: var(--ink);
	color: var(--honey);
	font-size: 1.35rem;
	box-shadow: 0 0 0 4px var(--paper), 0 0 0 5.5px rgba(42, 33, 27, 0.15);
}
.rd-role.is-hiring .rd-role__icon { background: var(--red); color: #fff; box-shadow: 0 0 0 4px var(--paper), 0 0 0 5.5px rgba(194, 31, 46, 0.3); }
.rd-role__name { margin: 0; font-family: var(--f-display); font-weight: 700; font-size: clamp(1.35rem, 1.2rem + 0.4vw, 1.6rem); line-height: 1.05; }
.rd-role__desc { margin: 0; color: var(--muted); line-height: 1.55; flex: 1; }
.rd-role__flag {
	position: absolute;
	right: 12px;
	top: -16px;
	padding: 0.1rem 0.85rem 0.2rem;
	border-radius: 999px;
	background: var(--honey);
	color: var(--char);
	font-family: var(--f-script);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.15;
	rotate: 4deg;
	box-shadow: 0 6px 14px rgba(42, 33, 27, 0.25);
}
.rd-role__apply {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	margin-top: 0.3rem;
	padding-top: 0.85rem;
	border-top: 1.5px dashed var(--line);
	color: var(--red-text);
	font-family: var(--f-cond);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}
.rd-role__apply .rd-ico { transition: translate 0.25s var(--ease); }
.rd-role__apply:hover { color: var(--red-dark); }
.rd-role__apply:hover .rd-ico { translate: 4px 0; }
.rd-role:not(.is-hiring) .rd-role__apply { color: var(--muted); }
.rd-roles-note { margin: clamp(2rem, 1.4rem + 1.5vw, 2.8rem) auto 0; max-width: 60ch; text-align: center; font-family: var(--f-script); font-weight: 700; font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.6rem); line-height: 1.25; color: var(--red-text); }
@media (max-width: 600px) { .rd-role:nth-child(n) { rotate: 0deg; } }

/* ------------------------------------------------------------------ apply (careers) */

/* Left: the "help wanted" chalkboard in its wood frame. Right: the application on order-pad
   paper with a red header strip and a strip of tape. */
body .elementor .elementor-section.rd-apply > .elementor-container { align-items: flex-start; }
body .elementor .rd-apply__sign > .elementor-widget-wrap {
	position: relative;
	padding: clamp(1.8rem, 1.2rem + 2vw, 2.8rem) clamp(1.5rem, 1rem + 1.6vw, 2.4rem) clamp(2rem, 1.4rem + 2vw, 3rem);
	border-radius: 10px;
	background-color: #1F2B26;
	background-image: radial-gradient(130% 95% at 50% 40%, transparent 55%, rgba(0, 0, 0, 0.45) 100%), url("../img/textures/slate-700.webp");
	background-size: auto, cover;
	box-shadow:
		inset 0 0 0 12px #6B4A2F,
		inset 0 0 0 14px #3F2A1A,
		0 2px 4px rgba(42, 33, 27, 0.2),
		0 24px 50px rgba(42, 33, 27, 0.3);
	align-content: flex-start;
}
body .elementor .rd-apply__sign > .elementor-widget-wrap::before {
	content: "";
	position: absolute;
	inset: 26px;
	border: 1.5px solid rgba(255, 253, 248, 0.14);
	border-radius: 8px;
	pointer-events: none;
}
body .elementor .rd-apply__sign .elementor-widget { position: relative; }
body .elementor .rd-apply__sign .rd-script .elementor-heading-title { color: var(--honey); font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.2rem); }
body .elementor .rd-apply__sign .elementor-heading-title { color: #FFFDF8; }
body .elementor .rd-apply__sign .rd-prose { color: rgba(255, 253, 248, 0.86); }
body .elementor .rd-checks--chalk .elementor-icon-list-icon { background: transparent; border: 1.5px solid rgba(255, 253, 248, 0.6); color: var(--honey); }
body .elementor .rd-checks--chalk .elementor-icon-list-icon i,
body .elementor .rd-checks--chalk .elementor-icon-list-icon svg { color: var(--honey); fill: var(--honey); }
body .elementor .rd-checks--chalk .elementor-icon-list-icon svg.rd-ico { fill: none; stroke: var(--honey); }
body .elementor .rd-checks--chalk .elementor-icon-list-text { color: #FFFDF8; font-family: var(--f-script); font-size: 1.4rem; font-weight: 700; line-height: 1.15; }
body .elementor .rd-apply__call { margin-top: 0.8rem; }
@media (min-width: 1025px) {
	body .elementor .rd-apply__sign > .elementor-widget-wrap { position: sticky; top: calc(var(--header-h) + 2rem); }
	body .elementor .elementor-column.rd-apply__sign { top: auto; }
}

body .elementor .rd-form-card.rd-apply__card > .elementor-widget-wrap {
	position: relative;
	padding-top: calc(clamp(1.5rem, 1rem + 2vw, 2.75rem) + 26px);
	border-radius: 4px 4px 14px 14px;
	background:
		linear-gradient(var(--red), var(--red)) top / 100% 14px no-repeat,
		repeating-linear-gradient(180deg, transparent 0 31px, rgba(194, 31, 46, 0.05) 31px 32px),
		var(--paper);
}
body .elementor .rd-form-card.rd-apply__card > .elementor-widget-wrap::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -14px;
	width: 130px;
	height: 30px;
	translate: -50% 0;
	rotate: -2deg;
	background: rgba(246, 226, 176, 0.85);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
body .elementor .rd-apply__card .rd-form-w { margin-top: 0.6rem; padding-top: 1.2rem; border-top: 2px solid var(--ink); }

/* ------------------------------------------------------------------ forms */

body .elementor .rd-form-card > .elementor-widget-wrap,
.rd-form-card:not(.elementor-column) {
	padding: clamp(1.5rem, 1rem + 2vw, 2.75rem);
	border-radius: var(--radius);
	background: var(--paper);
	box-shadow: var(--shadow-2);
	color: var(--ink);
	align-content: flex-start;
}
body .elementor :where(.on-dark) .rd-form-card .elementor-widget-heading .elementor-heading-title { color: var(--ink); }
body .elementor :where(.on-dark) .rd-form-card .rd-prose { color: var(--ink); }
.plugmatrix-form-embed { width: 100%; }
.rd-form-fallback { display: grid; gap: 1rem; padding: 1.4rem; border: 2px dashed var(--line); border-radius: var(--radius); background: rgba(255, 255, 255, 0.4); }
.rd-form-fallback__lead { margin: 0; font-size: 1.05rem; }
.rd-editor-note { margin: 0; padding: 0.7rem 0.9rem; border-radius: 8px; background: #FFF3D6; color: #6A4A0C; font-size: 0.9rem; }

/* ------------------------------------------------------------------ FAQ (toggle widget) */

body .elementor .rd-faq .elementor-toggle { display: grid; gap: 0.75rem; }
body .elementor .rd-faq .elementor-toggle-item { border: 0; border-radius: var(--radius-sm); background: var(--paper); box-shadow: var(--shadow-1); overflow: hidden; }
body .elementor .rd-faq .elementor-tab-title {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 1.05rem 1.3rem;
	border: 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--f-cond);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--ink);
}
body .elementor .rd-faq .elementor-tab-title::-webkit-details-marker { display: none; }
body .elementor .rd-faq .elementor-tab-title .elementor-toggle-title,
body .elementor .rd-faq .elementor-tab-title a { color: inherit; text-decoration: none; font: inherit; }
body .elementor .rd-faq .elementor-tab-title.elementor-active,
body .elementor .rd-faq details[open] > .elementor-tab-title { color: var(--red); }
body .elementor .rd-faq .elementor-toggle-icon { color: var(--red); }
body .elementor .rd-faq .elementor-toggle-icon i,
body .elementor .rd-faq .elementor-toggle-icon svg { color: var(--red); fill: var(--red); }
body .elementor .rd-faq .elementor-tab-content { padding: 0 1.3rem 1.2rem; border: 0; color: var(--muted); }
body .elementor .rd-faq details > .elementor-tab-title::after { content: "+"; margin-left: auto; font-size: 1.4rem; color: var(--red); line-height: 1; }
body .elementor .rd-faq details[open] > .elementor-tab-title::after { content: "–"; }

/* ------------------------------------------------------------------ page banner */

/* Inner pages open on one wide photo under a warm morning scrim (the title sits left, on the
   dark side), finished with a scalloped pie-crust hem into the cream page. */
body .elementor .elementor-section.rd-banner,
.rd-banner {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(4.5rem, 3rem + 5vw, 7.5rem) clamp(4.5rem, 3.4rem + 4vw, 7rem);
	background-color: var(--smoke);
	background-size: cover;
	background-position: center;
	color: var(--cream);
}
.rd-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(21, 17, 14, 0.92) 0%, rgba(21, 17, 14, 0.74) 42%, rgba(21, 17, 14, 0.25) 100%),
		linear-gradient(0deg, rgba(21, 17, 14, 0.6) 0%, transparent 46%),
		radial-gradient(700px 420px at 88% 18%, rgba(246, 182, 55, 0.25), transparent 70%);
}
.rd-banner::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 18px;
	z-index: 2;
	background: var(--cream);
	-webkit-mask: var(--torn) repeat-x 0 0 / 675px 18px;
	mask: var(--torn) repeat-x 0 0 / 675px 18px;
	pointer-events: none;
}
@media (max-width: 767px) {
	.rd-banner::before { background: linear-gradient(180deg, rgba(21, 17, 14, 0.78), rgba(21, 17, 14, 0.9)); }
}
body .elementor .rd-banner__title .elementor-heading-title { font-size: clamp(2.5rem, 1.5rem + 4.2vw, 5rem); color: var(--cream); text-shadow: 0 4px 30px rgba(0, 0, 0, 0.4); }
body .elementor .rd-banner__lede p { color: rgba(251, 244, 230, 0.9); max-width: 58ch; }
body .elementor .rd-banner .rd-script .elementor-heading-title { color: var(--yolk-soft); }
.rd-banner--plain .rd-wrap { display: grid; gap: 0.8rem; }
.rd-banner__title-plain { margin: 0; font-size: clamp(2.3rem, 1.5rem + 3.6vw, 4.4rem); color: var(--cream); }

.rd-crumbs { margin: 0 0 0.6rem; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; font-family: var(--f-cond); font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(251, 244, 230, 0.7); }
.rd-crumbs li { display: inline-flex; align-items: center; gap: 0.4rem; }
.rd-crumbs li + li::before { content: "/"; opacity: 0.5; }
.rd-crumbs a { color: rgba(251, 244, 230, 0.85); text-decoration: none; }
.rd-crumbs a:hover { color: var(--honey); }

/* ------------------------------------------------------------------ quote block */

body .elementor .rd-quote .elementor-heading-title,
.rd-quote-text {
	position: relative;
	font-family: var(--f-display);
	font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.3rem);
	line-height: 1.3;
	color: var(--ink);
}
body .elementor :where(.on-dark) .rd-quote .elementor-heading-title { color: var(--cream); }
body .elementor .rd-quote-mark .elementor-heading-title { font-family: var(--f-display); font-size: 5rem; line-height: 0.6; color: var(--red); }

/* ------------------------------------------------------------------ footer */

/* A navy barn wall (navy like the restaurant's own sign) under a gable roof with cream trim
   and a red pinstripe. A brass weathervane stands on the peak: it swings round when the footer
   scrolls into view, then sways in the breeze. The details are cream "order tickets" pinned to
   the wall. */
.rd-footer {
	--barn: #1F2D45;
	--barn-dark: #172236;
	--roof-h: clamp(54px, 26px + 4.2vw, 120px);
	--vane-w: clamp(76px, 58px + 2.6vw, 112px);
	position: relative;
	isolation: isolate;
	/* Headroom so the weathervane stands clear of the section above. */
	padding-top: calc(var(--vane-w) * 1.16 + 4px);
	color: rgba(251, 244, 230, 0.86);
	font-size: 0.98rem;
}
.rd-footer__roof { position: relative; height: var(--roof-h); margin-bottom: -1px; pointer-events: none; }
.rd-footer__gable { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.rd-footer__gable-fill { fill: var(--barn); }
.rd-footer__gable-trim { fill: none; stroke: var(--cream); stroke-width: 7px; vector-effect: non-scaling-stroke; stroke-linejoin: miter; }
.rd-footer__gable-red { fill: none; stroke: var(--red); stroke-width: 2px; vector-effect: non-scaling-stroke; opacity: 0.85; }
.rd-footer__vane {
	position: absolute;
	left: 50%;
	bottom: calc(var(--roof-h) - 4px);
	width: var(--vane-w);
	translate: -50% 0;
	filter: drop-shadow(0 6px 10px rgba(21, 17, 14, 0.25));
}
.rd-vane { display: block; width: 100%; height: auto; overflow: visible; }
.rd-vane__turn { transform-box: view-box; transform-origin: 100px 128px; }
@media (prefers-reduced-motion: no-preference) {
	.rd-footer__vane.is-live .rd-vane__turn { animation: rd-vane-turn 2.8s cubic-bezier(0.45, 0, 0.25, 1) both, rd-vane-sway 7s ease-in-out 2.8s infinite; }
}
/* In side view a weathervane turning on its pole is a horizontal squash through zero. */
@keyframes rd-vane-turn {
	0% { transform: scaleX(-1); }
	45% { transform: scaleX(0.15); }
	70% { transform: scaleX(1.04); }
	85% { transform: scaleX(0.97); }
	100% { transform: scaleX(1); }
}
@keyframes rd-vane-sway {
	0%, 100% { transform: scaleX(1); }
	35% { transform: scaleX(0.9); }
	55% { transform: scaleX(0.97); }
	75% { transform: scaleX(0.92); }
}

.rd-footer__wall {
	position: relative;
	background-color: var(--barn);
	/* Board-and-batten: a batten every 128px, a faint grain, darker toward the ground. */
	background-image:
		linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 30%, rgba(0, 0, 0, 0.22)),
		repeating-linear-gradient(90deg, transparent 0 118px, rgba(0, 0, 0, 0.2) 118px 120px, rgba(255, 255, 255, 0.05) 120px 124px, rgba(0, 0, 0, 0.12) 124px 126px, transparent 126px 128px),
		var(--grain);
	padding-bottom: clamp(2.2rem, 1.6rem + 2vw, 3.4rem);
}
.rd-footer__hero {
	display: grid;
	justify-items: center;
	gap: 0.35rem;
	padding-block: clamp(1.4rem, 1rem + 1.5vw, 2.4rem) clamp(2rem, 1.5rem + 2vw, 3rem);
	text-align: center;
}
.rd-footer__hero .rd-logo { height: clamp(78px, 60px + 3vw, 112px); }
.rd-footer__slogan { margin: 0.6rem 0 0; font-family: var(--f-script); font-weight: 700; font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.5rem); line-height: 1.05; color: var(--honey); transform: rotate(-2deg); }
.rd-footer__blurb { margin: 0.2rem 0 0; max-width: 56ch; color: rgba(251, 244, 230, 0.78); }

/* Order tickets pinned to the wall. */
.rd-footer__tickets {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.2rem, 0.8rem + 1.6vw, 2.4rem);
	align-items: start;
}
.rd-ticket-card {
	position: relative;
	padding: 0 0 1.4rem;
	border-radius: 6px 6px 0 0;
	background:
		repeating-linear-gradient(180deg, transparent 0 29px, rgba(31, 45, 69, 0.07) 29px 30px),
		var(--paper);
	color: var(--ink);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25), 0 22px 40px rgba(0, 0, 0, 0.35);
}
.rd-ticket-card:nth-child(1) { transform: rotate(-1.2deg); }
.rd-ticket-card:nth-child(2) { transform: rotate(0.6deg) translateY(10px); }
.rd-ticket-card:nth-child(3) { transform: rotate(-0.5deg); }
/* A scalloped tear along the bottom. */
.rd-ticket-card::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -11px;
	height: 12px;
	background: var(--paper);
	-webkit-mask: var(--torn) repeat-x 0 0 / 338px 12px;
	mask: var(--torn) repeat-x 0 0 / 338px 12px;
	transform: scaleY(-1);
}
/* The brass tack. */
.rd-ticket-card::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -9px;
	z-index: 2;
	width: 18px;
	height: 18px;
	margin-left: -9px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #FFE7A8, #E0A43A 55%, #8A5A14 100%);
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.45);
}
.rd-ticket-card__head {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 1rem;
	padding: 0.85rem 1.3rem 0.75rem;
	border-radius: 6px 6px 0 0;
	background: var(--red);
	color: #fff;
	font-family: var(--f-cond);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	line-height: 1.2;
}
.rd-ticket-card__head .rd-ico { width: 1.15em; height: 1.15em; color: var(--yolk-soft); }
.rd-ticket-card__body { display: grid; gap: 0.75rem; padding: 0 1.3rem; }
.rd-ticket-card__status { margin: 0; }
.rd-ticket-card .rd-hours__row { padding: 0.32rem 0; border-bottom-color: var(--line); }
.rd-ticket-card .rd-hours__row.is-today { color: var(--red-text); }
.rd-ticket-card .rd-hours__row.is-closed .rd-hours__time { color: var(--muted); }
.rd-ticket-card .rd-hours__day { font-size: 0.92rem; }
.rd-ticket-card__note { margin: 0; font-family: var(--f-script); font-weight: 700; font-size: 1.35rem; line-height: 1.15; color: var(--red-text); }
.rd-ticket-card__address { margin: 0; font-style: normal; font-size: 1.05rem; line-height: 1.5; }
.rd-ticket-card__links { display: grid; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.rd-ticket-card__links a { display: inline-flex; align-items: center; gap: 0.55rem; color: var(--ink); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.rd-ticket-card__links a .rd-ico { flex: none; color: var(--red); }
.rd-ticket-card__links a:hover { color: var(--red-text); }
.rd-ticket-card .rd-btns { gap: 0.5rem; margin-top: 0.2rem; }
.rd-ticket-card__sms {
	display: grid;
	gap: 0.2rem;
	padding: 0.85rem 1rem;
	border: 1.5px dashed rgba(194, 31, 46, 0.45);
	border-radius: 12px;
	background: rgba(246, 182, 55, 0.12);
	color: var(--ink);
	text-decoration: none;
	transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease);
}
.rd-ticket-card__sms-line { font-weight: 600; }
.rd-ticket-card__sms b { color: var(--red-text); letter-spacing: 0.03em; }
.rd-ticket-card__sms small { font-size: 0.86rem; color: var(--muted); }
.rd-ticket-card__sms:hover { background: rgba(246, 182, 55, 0.22); border-color: var(--red); color: var(--ink); }
.rd-ticket-card .rd-rating { justify-self: start; }
.rd-ticket-card__follow {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	gap: 0.55rem;
	min-height: 42px;
	padding: 0.4rem 1rem 0.4rem 0.5rem;
	border-radius: 999px;
	background: #1877F2;
	color: #fff;
	font-family: var(--f-cond);
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.rd-ticket-card__follow .rd-ico { width: 28px; height: 28px; padding: 6px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); }
.rd-ticket-card__follow:hover { background: #0F5FCC; color: #fff; transform: translateY(-1px); }
.rd-ticket-card__follow--instagram { background: #C13584; }
.rd-ticket-card__follow--instagram:hover { background: #9E2A6C; }

/* The footer menu: one centred row of links between little yolk suns. */
.rd-footer__nav { margin-top: clamp(2.6rem, 2rem + 2vw, 3.6rem); }
.rd-footer__menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.3rem 0; margin: 0; padding: 0; list-style: none; }
.rd-footer__menu li { display: inline-flex; align-items: center; list-style: none; }
.rd-footer__menu li + li::before { content: ""; width: 5px; height: 5px; margin-inline: 0.85rem; border-radius: 50%; background: var(--honey); opacity: 0.8; }
.rd-footer__menu a { display: inline-flex; align-items: center; min-height: 40px; color: rgba(251, 244, 230, 0.9); font-family: var(--f-cond); font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; transition: color 0.2s var(--ease); }
.rd-footer__menu a:hover,
.rd-footer__menu .current-menu-item > a { color: var(--honey); }

.rd-social { display: flex; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.rd-social a {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(251, 244, 230, 0.08);
	color: var(--cream);
	font-size: 1.15rem;
	transition: background-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.rd-social a:hover { background: var(--red); color: #fff; transform: translateY(-2px); }

.rd-footer__bottom { background: var(--barn-dark); border-top: 4px solid var(--red); font-size: 0.88rem; }
.rd-footer__bottom-in { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 0.75rem 2rem; padding-block: 1.1rem; }
.rd-footer__bottom p { margin: 0; color: rgba(251, 244, 230, 0.62); }
.rd-footer__bottom a { color: rgba(251, 244, 230, 0.8); }
.rd-footer__bottom a:hover { color: #fff; }
.rd-footer__legal { justify-self: end; text-align: right; }
.rd-footer__bottom .rd-footer__top {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 40px;
	padding: 0 1.05rem;
	border: 1px solid rgba(251, 244, 230, 0.2);
	border-radius: 999px;
	color: var(--cream);
	font-family: var(--f-cond);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease), color 0.2s var(--ease);
}
.rd-footer__bottom .rd-footer__top:hover { background: var(--honey); border-color: var(--honey); color: var(--char); }
.rd-footer__top .rd-ico { width: 1em; height: 1em; }
.rd-credit { color: rgba(251, 244, 230, 0.62); text-decoration: none; }
.rd-credit:hover { color: #fff; }
:where(.rd-footer) :focus-visible { outline-color: var(--honey); }
:where(.rd-ticket-card) :focus-visible { outline-color: var(--red); }
@media (max-width: 1024px) {
	.rd-footer__tickets { grid-template-columns: 1fr 1fr; }
	.rd-ticket-card--flock { grid-column: 1 / -1; max-width: 520px; justify-self: center; width: 100%; }
}
@media (max-width: 680px) {
	.rd-footer__tickets { grid-template-columns: 1fr; gap: 2rem; }
	.rd-ticket-card:nth-child(n) { transform: none; }
	.rd-footer__bottom-in { grid-template-columns: 1fr; justify-items: center; gap: 0.55rem; padding-block: 1.2rem 1.1rem; text-align: center; }
	.rd-footer__bottom .rd-footer__top { order: -1; margin-bottom: 0.3rem; }
	.rd-footer__legal { justify-self: center; text-align: center; }
	.rd-footer__menu li + li::before { margin-inline: 0.6rem; }
}

/* ------------------------------------------------------------------ prose pages, posts, 404, search */

.rd-prose-sec { padding-block: var(--sec-y); }
.rd-article { max-width: 760px; margin-inline: auto; }
.rd-article h2,
.rd-article h3 { margin-top: 1.6em; }
.rd-article img { border-radius: var(--radius-sm); }
.rd-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rd-gap); }
.rd-post-card { overflow: hidden; border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-1); }
.rd-post-card__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rd-post-card__body { padding: 1.3rem 1.4rem 1.5rem; }
.rd-post-card__title { font-size: 1.35rem; }
.rd-post-card__title a { color: var(--ink); text-decoration: none; }
.rd-post-card__date { margin: 0 0 0.4rem; font-family: var(--f-cond); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 1024px) { .rd-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rd-posts { grid-template-columns: 1fr; } }

.rd-404 { position: relative; isolation: isolate; text-align: center; padding-block: clamp(5rem, 3rem + 8vw, 10rem); }
.rd-404__code { font-family: var(--f-display); font-size: clamp(6rem, 3rem + 14vw, 13rem); line-height: 0.9; color: transparent; -webkit-text-stroke: 2px rgba(251, 244, 230, 0.35); }
.rd-404__title { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); color: var(--cream); }
.rd-404__text { max-width: 52ch; margin: 0 auto 1.8rem; color: rgba(251, 244, 230, 0.85); }

/* ------------------------------------------------------------------ Elementor compensation layer */

/* Widget spacing is governed by the theme so pages have one rhythm. */
body .elementor .elementor-section { --kit-widget-spacing: 18px; }
body .elementor .elementor-widget.rd-eyebrow,
body .elementor .elementor-widget.rd-script { --kit-widget-spacing: 14px; }
body .elementor .elementor-widget.rd-eyebrow { margin-block-end: 14px; }
body .elementor .elementor-widget-heading + .elementor-widget-text-editor { margin-block-start: 4px; }

/* Column gutters: Elementor's default 10px padding; sections opt into wider gaps. */
body .elementor .rd-gap-xl > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-inline: clamp(0.5rem, 0.2rem + 1.4vw, 2rem); }
body .elementor .elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--container); }

/* Section backgrounds set by class must not be overridden by Elementor's empty background. */
body .elementor .elementor-section.rd-sec.bg-cream { background-color: var(--cream); }

/* In the editor: no sticky surprises, no hidden content. */
body.elementor-editor-active .rd-header { position: relative; top: 0; }
body.elementor-editor-active .reveal,
body.elementor-editor-active .reveal.in { opacity: 1 !important; translate: none !important; }

/* Shortcode widgets are full width. */
body .elementor .elementor-widget-shortcode { width: 100%; }
body .elementor .elementor-widget-shortcode.elementor-widget__width-auto { width: auto; }

/* ------------------------------------------------------------------ reveal (fails open) */

/* `translate` (not `transform`) so tilted cards keep their own rotation. */
.reveal { opacity: 1; translate: none; }
html.js .reveal { opacity: 0; translate: 0 26px; transition: opacity 0.7s var(--ease), translate 0.7s var(--ease); }
html.js .reveal.in { opacity: 1; translate: none; }
@media (prefers-reduced-motion: reduce) {
	html.js .reveal { opacity: 1; translate: none; transition: none; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* ------------------------------------------------------------------ small screens */

@media (max-width: 767px) {
	body { font-size: 1rem; }
	.rd-tag { min-width: 112px; padding: 0.85rem 1.25rem; }
	.rd-tag__price { font-size: 1.65rem; }
	body .elementor .elementor-widget-button.elementor-widget__width-auto { margin-inline-end: 0.5rem; }
	body .elementor .elementor-widget-button .elementor-button { min-height: 48px; padding-inline: 1.3em; }
	body .elementor .rd-collage > .elementor-widget-wrap { aspect-ratio: 1 / 1.05; }
}

/* ------------------------------------------------------------------ layout helpers used by the page layouts */

body .elementor .rd-col-center > .elementor-widget-wrap { justify-content: center; }
body .elementor .rd-col-center > .elementor-widget-wrap > .elementor-widget-button.elementor-widget__width-auto { margin-inline: 0.375rem; }
body .elementor .rd-narrow-col > .elementor-widget-wrap { max-width: 860px; margin-inline: auto; }
body .elementor .rd-small p { font-size: 0.95rem; color: var(--muted); }
body .elementor :where(.on-dark) .rd-small p { color: rgba(251, 244, 230, 0.74); }
body .elementor .rd-copy-col > .elementor-widget-wrap,
body .elementor .rd-media-col > .elementor-widget-wrap { align-content: center; }
body .elementor .rd-visit__aside > .elementor-widget-wrap { gap: var(--rd-gap); }
body .elementor .rd-visit__aside .elementor-widget { margin-block-end: 0; }
body .elementor .rd-hero__rating { margin-top: 0.75rem; }
body .elementor .rd-rating-w { margin-block: 0.5rem 1.6rem; }
body .elementor .rd-banner .rd-crumbs-w { margin-block-end: 0.25rem; }
body .elementor .rd-banner .elementor-widget-shortcode .rd-headreport,
body .elementor .rd-banner .elementor-widget-shortcode .rd-status { margin-top: 0.4rem; }
body .elementor .rd-banner .rd-status { font-size: 0.9rem; padding: 0.5em 1em 0.5em 0.85em; }
body .elementor .rd-board-note p { margin-top: 1.6rem; color: rgba(251, 244, 230, 0.78); font-family: var(--f-cond); letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.92rem; }
body .elementor .rd-board-note a { color: var(--honey); }

/* Dark button (used on the red CTA band). */
body .elementor .rd-btn-dark .elementor-button { background: var(--char); border-color: var(--char); color: #fff; box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3); }
body .elementor .rd-btn-dark .elementor-button:hover,
body .elementor .rd-btn-dark .elementor-button:focus-visible { background: #000; border-color: #000; color: #fff; }

/* Button icons (Elementor inline SVG, Font Awesome, or the fallback renderer's SVG). */
body .elementor .elementor-button .elementor-button-icon { display: inline-flex; align-items: center; }
body .elementor .elementor-button .elementor-button-icon svg { width: 1.05em; height: 1.05em; fill: currentColor; }
body .elementor .elementor-button .elementor-button-icon svg.rd-ico { fill: none; stroke: currentColor; }
body .elementor .elementor-button .elementor-button-icon i { font-size: 1em; }

/* Sunday fried-chicken ticket. */
body .elementor .rd-ticket-w { width: 100%; }
.rd-ticket {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 1.6rem 1.4rem 1.4rem;
	border-radius: 14px;
	background: var(--paper);
	box-shadow: var(--shadow-2);
	list-style: none;
	transform: rotate(2deg);
	text-align: center;
}
.rd-ticket::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -14px;
	width: 110px;
	height: 28px;
	transform: translateX(-50%) rotate(-4deg);
	background: rgba(246, 226, 176, 0.9);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}
.rd-ticket li { display: grid; gap: 0.15rem; margin: 0; padding: 0.4rem 0.3rem; border-right: 1.5px dashed var(--line); }
.rd-ticket li:nth-child(3) { border-right: 0; }
.rd-ticket strong { font-family: var(--f-display); font-size: clamp(2.2rem, 1.6rem + 2vw, 3.2rem); line-height: 1; color: var(--ink); font-weight: 400; }
.rd-ticket span { font-family: var(--f-cond); font-size: 0.82rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.rd-ticket .rd-ticket__price { grid-column: 1 / -1; margin-top: 1rem; padding-top: 1.1rem; border-right: 0; border-top: 2px dashed var(--line); }
.rd-ticket .rd-ticket__price strong { color: var(--red); font-size: clamp(2.6rem, 1.8rem + 2.6vw, 3.8rem); }

/* "We thank God…" line on the story page. */
body .elementor .rd-thanks p { font-family: var(--f-script); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.3rem); line-height: 1.35; color: var(--red); max-width: 34ch; }

/* Commitment quote. */
body .elementor .rd-commitment .rd-quote .elementor-heading-title { max-width: 30ch; margin-inline: auto; }
body .elementor .rd-commitment .rd-script .elementor-heading-title { margin-top: 0.6rem; }

/* Two features stacked in one card (Catering occasions). */
body .elementor .rd-feature-card .elementor-widget-image-box + .elementor-widget-image-box { margin-top: 0.4rem; padding-top: 1.4rem; border-top: 1.5px dashed var(--line); }

/* Logged-in: keep the drawer below the WordPress toolbar. */
.admin-bar .rd-drawer { top: 32px; }
@media (max-width: 782px) { .admin-bar .rd-drawer { top: 46px; } }

/* Side gutters for Elementor sections: the column adds 10px, the container adds the rest,
   so every section lines up with the header's .rd-wrap. */
body .elementor .elementor-section.rd-sec > .elementor-container { padding-inline: max(0px, calc(var(--gutter) - 10px)); }
/* "No gap" sections (card grids, steps) have no column padding, so their container takes the whole gutter. */
body .elementor .elementor-section.rd-sec > .elementor-container.elementor-column-gap-no { padding-inline: var(--gutter); }

/* Phones: tilted cards and ribbons stay inside the screen. */
@media (max-width: 600px) {
	.rd-special,
	.rd-special:nth-child(n) { transform: none; }
	.rd-special__today { right: 10px; }
	.rd-ticket { transform: none; }
	body .elementor .rd-photo--tilt img { transform: rotate(-1deg); }
}

/* Safety net: nothing may ever create a sideways scrollbar. `clip` (not `hidden`) so sticky
   headers and the menu bar keep working. Root causes are still fixed where they appear. */
html,
body { overflow-x: clip; }

/* Phones: the home page shows three reviews, not six (the button links to the rest). */
@media (max-width: 680px) {
	.rd-reviews-sec .rd-reviews > .rd-review:nth-child(n + 4) { display: none; }
}

/* Cards on light sections: a hairline edge so they separate from the paper behind them. */
.rd-hours-card,
.rd-dish,
.rd-review:not(:where(.on-dark *)),
.rd-info__card,
.rd-role,
.rd-menu-cat,
body .elementor .rd-feature-card > .elementor-widget-wrap,
body .elementor .rd-door--family > .elementor-widget-wrap,
body .elementor .rd-form-card > .elementor-widget-wrap,
body .elementor .rd-faq .elementor-toggle-item { box-shadow: 0 0 0 1px rgba(42, 33, 27, 0.06), var(--shadow-1); }

/* ------------------------------------------------------------------ compact phone footer */

.rd-hgroups { display: none; margin: 0; padding: 0; list-style: none; }
.rd-hgroups li { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px dashed rgba(251, 244, 230, 0.14); }
.rd-hgroups li:last-child { border-bottom: 0; }
.rd-hgroups span { font-family: var(--f-cond); font-size: 0.92rem; letter-spacing: 0.08em; text-transform: uppercase; }
.rd-hgroups strong { font-weight: 600; color: var(--cream); }
.rd-hgroups li.is-closed strong { font-weight: 400; color: rgba(251, 244, 230, 0.6); }
.rd-footer__actions { display: none; }


/* ------------------------------------------------------------------ Rooster's Den sections */

/* Hero widgets. */
body .elementor .rd-hero__buttons,
body .elementor .rd-hero__proof { margin-top: 0.4rem; }
body .elementor .rd-hero__crow { margin-block-end: 0; }
@media (max-width: 1024px) {
	.rd-hero .rd-btns { justify-content: center; }
}

/* Welcome: the order ticket sits beside the copy, overlapping the hills a little. */
body .elementor .rd-welcome .rd-today-w { margin-top: clamp(-7rem, -4rem - 4vw, -3rem); }
@media (max-width: 1024px) { body .elementor .rd-welcome .rd-today-w { margin-top: 1.5rem; } }
body .elementor .rd-welcome .elementor-widget-button { margin-top: 0.8rem; }

/* A row of taped polaroids (plates, the dining room, cakes), tilting alternately. */
body .elementor .rd-plates > .elementor-container { align-items: center; }
body .elementor .rd-plate .rd-polaroid img { aspect-ratio: 1; height: auto; }
body .elementor .rd-plate:nth-child(odd) .rd-polaroid img { transform: rotate(-2.5deg); }
body .elementor .rd-plate:nth-child(even) .rd-polaroid img { transform: rotate(2deg) translateY(10px); }
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
	body .elementor .rd-plate .rd-polaroid img { transition: transform 0.45s var(--ease); }
	body .elementor .rd-plate .rd-polaroid:hover img { transform: rotate(0) translateY(-6px) scale(1.02); }
}
body .elementor .elementor-section.rd-plates { padding-bottom: calc(var(--sec-y) * 0.8); background-image: none; }
body .elementor .elementor-section.rd-plates--top { padding-top: calc(var(--sec-y) * 0.8); }
@media (max-width: 767px) {
	body .elementor .rd-plates > .elementor-container { flex-wrap: wrap; }
	body .elementor .rd-plates .elementor-column.rd-plate { width: 50%; }
	body .elementor .rd-plates .elementor-column.rd-plate:last-child:nth-child(odd) { width: 70%; margin-inline: auto; }
}

/* Photo doors: Breakfast / Lunch, Events / Catering. The photo bleeds to the card edges. */
body .elementor .rd-doors > .elementor-container,
body .elementor .rd-gather__doors > .elementor-container { gap: clamp(1rem, 0.6rem + 1.6vw, 2.25rem); flex-wrap: nowrap; }
@media (max-width: 1024px) {
	body .elementor .rd-doors > .elementor-container,
	body .elementor .rd-gather__doors > .elementor-container { flex-wrap: wrap; }
}
body .elementor .rd-door > .elementor-widget-wrap {
	position: relative;
	height: 100%;
	padding: 0 clamp(1.5rem, 1.1rem + 1.6vw, 2.6rem) clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);
	border-radius: 22px;
	overflow: hidden;
	align-content: flex-start;
	isolation: isolate;
}
body .elementor .rd-door--family > .elementor-widget-wrap { background: var(--paper); box-shadow: 0 0 0 1px rgba(42, 33, 27, 0.06), var(--shadow-2); color: var(--ink); }
body .elementor .rd-door--bar > .elementor-widget-wrap,
body .elementor .rd-door--photo > .elementor-widget-wrap {
	background: var(--smoke);
	background-image: radial-gradient(130% 95% at 50% 60%, transparent 50%, rgba(0, 0, 0, 0.45) 100%), var(--chalk);
	background-size: auto, cover;
	color: var(--cream);
	box-shadow: var(--shadow-2);
}
body .elementor .rd-door--photo > .elementor-widget-wrap { box-shadow: 0 0 0 1px rgba(251, 244, 230, 0.08), var(--shadow-dark); }
body .elementor .rd-door .rd-door-photo { width: calc(100% + 2 * clamp(1.5rem, 1.1rem + 1.6vw, 2.6rem)); max-width: none; margin: 0 calc(-1 * clamp(1.5rem, 1.1rem + 1.6vw, 2.6rem)) 1.6rem; }
body .elementor .rd-door .rd-door-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; border-radius: 0; box-shadow: none; transition: transform 0.8s var(--ease); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	body .elementor .rd-door:hover .rd-door-photo img { transform: scale(1.04); }
}
body .elementor .rd-door .rd-door-photo .elementor-widget-container,
body .elementor .rd-door .rd-door-photo figure { overflow: hidden; margin: 0; }
body .elementor .rd-door-title h3.elementor-heading-title { font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.8rem); }
body .elementor :where(.rd-door--bar, .rd-door--photo) .elementor-heading-title { color: var(--cream); }
body .elementor :where(.rd-door--bar, .rd-door--photo) .rd-prose { color: rgba(251, 244, 230, 0.86); }
body .elementor :where(.rd-door--bar, .rd-door--photo) .rd-eyebrow .elementor-heading-title { color: var(--honey); }
body .elementor .rd-door .elementor-widget-button { margin-top: 0.4rem; }

/* Favorites: the button sits centered under the grid. */
body .elementor .rd-favs .elementor-widget-button { margin-top: clamp(1.4rem, 1rem + 1.5vw, 2.4rem); }

/* The board's live report and inline text-club line. */
body .elementor .rd-report-w { display: flex; justify-content: center; margin-bottom: clamp(1.4rem, 1rem + 1.6vw, 2.4rem); }
body .elementor .rd-board .elementor-widget-button { margin-top: 1.2rem; }

/* Text club: a hand-lettered sign inside the red band. */
.rd-textclub { display: grid; justify-items: center; gap: 1.2rem; margin: 0.4rem 0 1rem; }
.rd-textclub__line {
	margin: 0;
	padding: 0.35em 0.8em 0.45em;
	border: 3px dashed rgba(255, 255, 255, 0.6);
	border-radius: 18px;
	font-family: var(--f-display);
	font-size: clamp(1.6rem, 1rem + 2.6vw, 3rem);
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	color: #fff;
}
.rd-textclub__kw,
.rd-textclub__num { font-family: var(--f-cond); font-weight: 700; letter-spacing: 0.06em; color: var(--yolk-soft); }
.rd-textclub-inline { display: inline-flex; align-items: center; gap: 0.6rem; margin: 0; font-family: var(--f-cond); font-size: 0.98rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(251, 244, 230, 0.86); }
.rd-textclub-inline .rd-ico { color: var(--honey); width: 1.3em; height: 1.3em; }
.rd-textclub-inline b { color: var(--honey); font-weight: 600; }
body .elementor .rd-board-note { display: flex; justify-content: center; margin-top: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); }
body .elementor .rd-textclub-w,
body .elementor .rd-cta .elementor-widget-shortcode { width: 100%; }

/* Story page note in chalk script. */
body .elementor .rd-thanks p { font-family: var(--f-script); font-weight: 700; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.4rem); line-height: 1.2; color: var(--red); max-width: 30ch; }

/* Ordering buttons under the visit copy. */
body .elementor .rd-order-w { margin-top: 1.2rem; }

/* Phones: a tighter eyebrow, and the hero's buttons as "menu" over "pickup | delivery". */
@media (max-width: 600px) {
	.rd-eyebrow-text,
	body .elementor .rd-eyebrow .elementor-heading-title { font-size: 0.78rem; letter-spacing: 0.16em; gap: 0.5em; }
	.rd-eyebrow-text::before,
	.rd-eyebrow-text::after,
	body .elementor .rd-eyebrow .elementor-heading-title::before,
	body .elementor .rd-eyebrow .elementor-heading-title::after { width: 1.1em; }
	.rd-hero .rd-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; width: 100%; }
	.rd-hero .rd-btns .rd-btn { width: 100%; padding-inline: 0.8em; font-size: 0.9rem; }
	.rd-hero .rd-btns .rd-btn--honey { grid-column: 1 / -1; }
	.rd-proof { gap: 0.55rem; }
	.rd-proof .rd-rating { padding-right: 0.9rem; }
}

/* A heading and the row of cards it introduces share one section (build.py joined()): the row
   is an inner section, spaced off the heading here. One section means one background, so no
   seam runs between the heading and its content. */
body .elementor .elementor-inner-section.rd-inner { margin-top: clamp(1.6rem, 1rem + 2vw, 2.8rem); }
body .elementor .rd-joined > .elementor-widget-wrap > .elementor-widget-shortcode { margin-top: clamp(0.6rem, 0.3rem + 1vw, 1.2rem); }
