/* Mama T's Pizzeria 1.0.3 — built from src/css. Do not edit here. */
/* ---- 01-tokens.css ---- */
/* ==========================================================================
   Mama T's Pizzeria — design tokens
   Espresso black, sauce red, aged brass and bone. Playfair for the drama,
   Oswald for the labels, EB Garamond to read, Pinyon Script to sign off,
   Special Elite (typewriter) for case files and reviewers' names.
   ========================================================================== */

:root {
	--ink: #120d0b;
	--ink-2: #19120f;
	--ink-3: #221915;
	--ink-4: #2e221d;
	--line: rgba(239, 230, 214, 0.12);
	--line-2: rgba(239, 230, 214, 0.22);
	--line-gold: rgba(201, 163, 92, 0.42);

	--bone: #efe6d6;
	--text: #d8ccb8;
	--muted: #a99b86;

	--gold: #c9a35c;
	--gold-hi: #e2c07c;
	--red: #a51d1d;
	--red-hi: #c42a2a;
	--red-text: #e2554a;
	--red-deep: #5e1111;
	--wine: #3a0b0b;
	--basil: #4f8b49;
	--basil-hi: #6fbf66;

	--paper: #f2e9d8;
	--paper-2: #e7dbc3;
	--paper-ink: #221a15;
	--paper-muted: #5f5145;

	--f-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--f-cond: "Oswald", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
	--f-body: "EB Garamond", Garamond, Georgia, serif;
	--f-script: "Pinyon Script", "Snell Roundhand", "Brush Script MT", cursive;
	--f-type: "Special Elite", "Courier New", Courier, monospace;
	--paper-red: #9b1c1c;

	--container: 1240px;
	--gutter: clamp(20px, 4vw, 48px);
	--section-y: clamp(76px, 9vw, 150px);
	--header-h: 88px;
	--admin-h: 0px;
	--radius: 3px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--shadow-deep: 0 40px 80px -36px rgba(0, 0, 0, 0.85);

	--fs-body: clamp(1.06rem, 1rem + 0.25vw, 1.22rem);
	--fs-lede: clamp(1.18rem, 1.06rem + 0.5vw, 1.45rem);
	--fs-hero: clamp(3rem, 1rem + 4.4vw, 6.6rem);
	--fs-h1-page: clamp(2.8rem, 1.6rem + 4.4vw, 5.8rem);
	--fs-h2: clamp(2.2rem, 1.35rem + 2.9vw, 4.3rem);
	--fs-h3: clamp(1.35rem, 1.15rem + 0.6vw, 1.75rem);
	--fs-eyebrow: 0.8rem;
}

.admin-bar {
	--admin-h: 32px;
}

@media (max-width: 782px) {
	.admin-bar {
		--admin-h: 46px;
	}
}

@media (max-width: 1024px) {
	:root {
		--header-h: 76px;
	}
}

/* ---- 02-base.css ---- */
/* ==========================================================================
   Base
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + var(--admin-h) + 70px);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	margin: 0;
	background: var(--ink);
	color: var(--text);
	font-family: var(--f-body);
	font-size: var(--fs-body);
	line-height: 1.62;
	font-kerning: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

/* Film grain over everything: fixed, static, no blend mode (cheap to scroll). */
body.mt-site::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	pointer-events: none;
	background-image: url("../img/grain.png");
	background-size: 180px 180px;
	opacity: 0.07;
}

img,
svg,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
}

/* WordPress chrome keeps its own sizing. */
#wpadminbar img {
	max-width: none;
}

a {
	color: var(--gold-hi);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--bone);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--f-display);
	color: var(--bone);
	font-weight: 700;
	line-height: 1.08;
	margin: 0 0 0.5em;
	text-wrap: balance;
}

p {
	margin: 0 0 1em;
	text-wrap: pretty;
}

p:last-child {
	margin-bottom: 0;
}

em {
	font-style: italic;
}

::selection {
	background: var(--red);
	color: #fff;
}

/* Focus: a real outline, light on dark, everywhere. */
:focus {
	outline: none;
}

:focus-visible {
	outline: 2px solid var(--gold-hi);
	outline-offset: 3px;
}

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

.mt-skip {
	position: absolute;
	left: 12px;
	top: -60px;
	z-index: 100000;
	padding: 12px 18px;
	background: var(--bone);
	color: var(--ink);
	font-family: var(--f-cond);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.85rem;
	transition: top 0.2s ease;
}

.mt-skip:focus {
	top: calc(var(--admin-h) + 10px);
}

.mt-main:focus {
	outline: none;
}

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

.mt-container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.mt-muted {
	color: var(--muted);
}

/* ---- 03-components.css ---- */
/* ==========================================================================
   Components
   Selectors that reach into Elementor widgets stay at (0,3,1) max — enough to beat
   Elementor's kit defaults (0,3,0), never enough to beat a style the client sets on
   one widget in the editor (0,4,0). No !important.
   ========================================================================== */

/* ---------- Buttons: theme <a class="mt-button"> and Elementor button widgets ---------- */

.mt-button,
body .elementor .mt-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7em;
	min-height: 54px;
	padding: 0.95em 1.9em;
	border: 1px solid var(--red);
	border-radius: var(--radius);
	background: var(--red);
	color: #fff;
	font-family: var(--f-cond);
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.1;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 18px 34px -18px rgba(165, 29, 29, 0.9);
	transition: background-color 0.25s var(--ease), border-color 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.mt-button:hover,
body .elementor .mt-btn .elementor-button:hover {
	background: var(--red-hi);
	border-color: var(--red-hi);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 24px 40px -18px rgba(196, 42, 42, 0.95);
}

.mt-button .ico {
	font-size: 1.15em;
}

/* Ghost: hairline on dark */
.mt-button--ghost,
body .elementor .mt-btn-ghost .elementor-button {
	background: transparent;
	border-color: rgba(239, 230, 214, 0.42);
	color: var(--bone);
	box-shadow: none;
}

.mt-button--ghost:hover,
body .elementor .mt-btn-ghost .elementor-button:hover {
	background: rgba(239, 230, 214, 0.06);
	border-color: var(--gold);
	color: var(--gold-hi);
	box-shadow: none;
}

/* Light: bone on red bands */
.mt-button--light,
body .elementor .mt-btn-light .elementor-button {
	background: var(--bone);
	border-color: var(--bone);
	color: var(--ink);
	box-shadow: 0 18px 34px -18px rgba(0, 0, 0, 0.6);
}

.mt-button--light:hover,
body .elementor .mt-btn-light .elementor-button:hover {
	background: #fff;
	border-color: #fff;
	color: var(--red-deep);
}

.mt-button--ghost-light {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.55);
	color: #fff;
	box-shadow: none;
}

.mt-button--ghost-light:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: #fff;
	color: #fff;
	box-shadow: none;
}

.mt-button--red {
	background: var(--red);
}

/* Arrow on Elementor buttons that ask for one */
body .elementor .mt-btn-arrow .elementor-button-text::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.7em;
	transition: transform 0.25s var(--ease);
}

body .elementor .mt-btn-arrow .elementor-button:hover .elementor-button-text::after {
	transform: translateX(4px);
}

body .elementor .mt-btn-out .elementor-button-text::after {
	content: "\2197";
	margin-left: 0.6em;
}

/* Text link styled as a label */
body .elementor .mt-link .elementor-button {
	padding: 0;
	min-height: 0;
	background: none;
	border: 0;
	box-shadow: none;
	color: var(--gold-hi);
	font-family: var(--f-cond);
	font-size: 0.82rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

body .elementor .mt-link .elementor-button-text::after {
	content: "\2192";
	margin-left: 0.6em;
	display: inline-block;
	transition: transform 0.25s var(--ease);
}

body .elementor .mt-link .elementor-button:hover {
	color: var(--bone);
	background: none;
}

body .elementor .mt-link .elementor-button:hover .elementor-button-text::after {
	transform: translateX(5px);
}

/* Inline widgets (buttons side by side). (0,3,1): Elementor zeroes this margin with
   .elementor-widget:not(:last-child).elementor-widget__width-auto at (0,3,0), so wrapped
   buttons would otherwise touch on phones. */
body .elementor .elementor-widget.elementor-widget__width-auto {
	margin-inline-end: 14px;
	margin-block-end: 12px;
}

body .elementor .elementor-widget.mt-inline {
	width: auto;
	max-width: 100%;
}

/* Elementor 4 prints the <a> straight into the widget (no .elementor-button-wrapper),
   so centre on the widget itself; the wrapper, where it exists, inherits it. */
body .elementor .elementor-widget.mt-btn-center {
	text-align: center;
}

/* ---------- Eyebrow ---------- */

body .elementor .mt-eyebrow .elementor-heading-title,
.mt-banner__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--f-cond);
	font-size: var(--fs-eyebrow);
	font-weight: 500;
	letter-spacing: 0.32em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--gold);
}

body .elementor .mt-eyebrow .elementor-heading-title::before,
.mt-banner__eyebrow::before {
	content: "";
	width: 38px;
	height: 1px;
	background: currentColor;
	flex: none;
}

body .elementor .mt-eyebrow.mt-center .elementor-heading-title::after {
	content: "";
	width: 38px;
	height: 1px;
	background: currentColor;
	flex: none;
}

body .elementor .mt-eyebrow:not(:last-child) {
	margin-bottom: 18px;
}

/* ---------- Headings inside designed sections ---------- */

body .elementor .elementor-widget-heading h1.elementor-heading-title {
	font-family: var(--f-cond);
	font-size: var(--fs-h1-page);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--bone);
}

body .elementor .elementor-widget-heading h1.elementor-heading-title em {
	font-style: normal;
	text-transform: inherit;
	color: var(--red-hi);
}

body .elementor .elementor-widget-heading h2.elementor-heading-title {
	font-family: var(--f-display);
	font-size: var(--fs-h2);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: var(--bone);
}

body .elementor .elementor-widget-heading h3.elementor-heading-title {
	font-family: var(--f-display);
	font-size: var(--fs-h3);
	font-weight: 700;
	line-height: 1.15;
	color: var(--bone);
}

body .elementor .elementor-heading-title em {
	font-style: italic;
	font-weight: 700;
	text-transform: none;
	color: var(--red-text);
}

body .elementor .elementor-widget-heading:not(:last-child) {
	margin-bottom: 26px;
}

/* ---------- Text ---------- */

body .elementor .elementor-widget-text-editor {
	color: var(--text);
	font-family: var(--f-body);
	font-size: var(--fs-body);
	line-height: 1.66;
}

body .elementor .elementor-widget-text-editor p {
	max-width: 62ch;
}

body .elementor .mt-lede {
	font-size: var(--fs-lede);
	line-height: 1.55;
	color: var(--text);
}

body .elementor .mt-center,
body .elementor .mt-center .elementor-heading-title {
	text-align: center;
}

body .elementor .mt-center p {
	margin-inline: auto;
}

body .elementor .elementor-widget-text-editor:not(:last-child) {
	margin-bottom: 34px;
}

body .elementor .mt-signoff .elementor-heading-title {
	font-family: var(--f-script);
	font-size: clamp(2rem, 1.6rem + 1.4vw, 2.9rem);
	font-weight: 400;
	line-height: 1.1;
	color: var(--gold);
	text-transform: none;
}

/* ---------- Photos ---------- */

body .elementor .mt-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius);
	box-shadow: var(--shadow-deep);
	outline: 1px solid var(--line-gold);
	outline-offset: 14px;
}

body .elementor .mt-photo-stamp {
	position: relative;
}

body .elementor .mt-photo-stamp::after {
	content: "Mama T\2019s\A Since 2011";
	white-space: pre;
	position: absolute;
	right: clamp(-8px, -1vw, 0px);
	bottom: -34px;
	width: 132px;
	height: 132px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: radial-gradient(circle, #1d1613 58%, #120d0b 100%);
	border: 1px solid var(--gold);
	box-shadow: 0 0 0 6px var(--ink), 0 0 0 7px var(--line-gold), 0 20px 40px -10px #000;
	color: var(--gold-hi);
	font-family: var(--f-display);
	font-style: italic;
	font-size: 1.02rem;
	line-height: 1.25;
	text-align: center;
	transform: rotate(-10deg);
	pointer-events: none;
}

/* ---------- Status pill ---------- */

.mt-status {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 13px;
	border: 1px solid var(--line-2);
	border-radius: 999px;
	background: rgba(13, 10, 9, 0.55);
	font-family: var(--f-cond);
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bone);
	line-height: 1.2;
}

.mt-status__detail {
	color: var(--muted);
}

.mt-status__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--red-hi);
	box-shadow: 0 0 0 3px rgba(196, 42, 42, 0.22);
	flex: none;
}

.mt-status.is-open .mt-status__dot {
	background: var(--basil-hi);
	box-shadow: 0 0 0 3px rgba(111, 191, 102, 0.22);
	animation: mt-pulse 2.4s ease-in-out infinite;
}

.mt-status.is-soon .mt-status__dot {
	background: #e2a33a;
	box-shadow: 0 0 0 3px rgba(226, 163, 58, 0.25);
}

@keyframes mt-pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(111, 191, 102, 0.24); }
	50% { box-shadow: 0 0 0 7px rgba(111, 191, 102, 0.04); }
}

/* ---------- Price + badges ---------- */

.mt-price {
	font-family: var(--f-display);
	font-weight: 700;
	color: var(--gold-hi);
	white-space: nowrap;
	font-variant-numeric: lining-nums;
}

.mt-price__cur {
	font-size: 0.62em;
	vertical-align: 0.42em;
	margin-right: 1px;
	opacity: 0.85;
}

.mt-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px 4px 8px;
	border: 1px solid var(--line-gold);
	border-radius: 999px;
	font-family: var(--f-cond);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--gold-hi);
	background: rgba(13, 10, 9, 0.7);
	white-space: nowrap;
}

.mt-badge .ico {
	width: 13px;
	height: 13px;
}

.mt-badge--spicy {
	color: #ff8a6b;
	border-color: rgba(255, 138, 107, 0.45);
}

.mt-badge--veggie {
	color: var(--basil-hi);
	border-color: rgba(111, 191, 102, 0.45);
}

.mt-badge--premium {
	color: #fff;
	background: var(--red);
	border-color: var(--red);
}

.mt-badge--family {
	color: var(--ink);
	background: var(--gold);
	border-color: var(--gold);
}

.mt-soldout {
	font-family: var(--f-cond);
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	background: var(--red);
	padding: 4px 10px;
	border-radius: 2px;
	white-space: nowrap;
}

/* ---------- Hours ---------- */

.mt-hourtable {
	width: 100%;
	max-width: 420px;
	border-collapse: collapse;
	font-family: var(--f-body);
	font-size: 1.06rem;
}

.mt-hourtable th,
.mt-hourtable td {
	padding: 11px 0;
	border-bottom: 1px dashed var(--line-2);
	vertical-align: baseline;
}

.mt-hourtable th {
	text-align: left;
	font-family: var(--f-cond);
	font-weight: 500;
	font-size: 0.82rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bone);
	padding-right: 18px;
	white-space: nowrap;
}

.mt-hourtable td {
	text-align: right;
	color: var(--text);
	white-space: nowrap;
}

.mt-hourtable tr.is-closed td {
	color: var(--muted);
	font-style: italic;
}

.mt-hourtable tr.is-today th,
.mt-hourtable tr.is-today td {
	color: var(--gold-hi);
}

.mt-hourtable tr.is-today th::after {
	content: "Today";
	margin-left: 10px;
	padding: 2px 7px;
	border-radius: 2px;
	background: var(--gold);
	color: var(--ink);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	vertical-align: 0.15em;
}

.mt-hours-note {
	margin-top: 14px;
	color: var(--muted);
	font-style: italic;
	font-size: 0.98rem;
}

body .elementor .mt-hours:not(:last-child) {
	margin-bottom: 36px;
}

/* ---------- Address ---------- */

.mt-addr {
	display: grid;
	gap: 14px;
}

.mt-addr__line {
	display: inline-flex;
	align-items: flex-start;
	gap: 14px;
	color: var(--bone);
	text-decoration: none;
	font-size: 1.12rem;
	line-height: 1.45;
}

.mt-addr__line .ico {
	width: 20px;
	height: 20px;
	margin-top: 3px;
	color: var(--gold);
}

.mt-addr__line:hover {
	color: var(--gold-hi);
}

body .elementor .mt-address:not(:last-child) {
	margin-bottom: 32px;
}

/* ---------- Social ---------- */

.mt-social {
	display: flex;
	gap: 10px;
	margin-top: 22px;
}

.mt-social__link {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--line-2);
	border-radius: 50%;
	color: var(--bone);
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.mt-social__link .ico {
	width: 18px;
	height: 18px;
}

.mt-social__link:hover {
	border-color: var(--gold);
	color: var(--gold-hi);
	background: rgba(201, 163, 92, 0.08);
}

/* ---------- Map ---------- */

.mt-mapframe {
	position: relative;
	height: var(--mt-map-h, 420px);
	border: 1px solid var(--line-gold);
	border-radius: var(--radius);
	overflow: hidden;
	background: var(--ink-3);
	box-shadow: var(--shadow-deep);
}

.mt-mapframe iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(1) invert(0.92) sepia(0.28) contrast(0.88) brightness(0.92);
	transition: filter 0.6s ease;
}

.mt-mapframe:hover iframe {
	filter: grayscale(0.4) invert(0.92) sepia(0.2) contrast(0.92) brightness(0.95);
}

.mt-mapframe__link {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: rgba(13, 10, 9, 0.88);
	border: 1px solid var(--line-gold);
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-cond);
	font-size: 0.76rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	backdrop-filter: blur(4px);
}

.mt-mapframe__link .ico {
	color: var(--red-text);
}

.mt-mapframe__link:hover {
	color: var(--gold-hi);
}

/* ---------- Ornament divider ---------- */

.mt-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	color: var(--gold);
}

.mt-ornament::before,
.mt-ornament::after {
	content: "";
	height: 1px;
	width: min(120px, 18vw);
	background: linear-gradient(90deg, transparent, var(--line-gold));
}

.mt-ornament::after {
	transform: scaleX(-1);
}

/* ---- 04-chrome.css ---- */
/* ==========================================================================
   Chrome: announcement bar, header, nav, drawer, footer, mobile bar
   ========================================================================== */

/* ---------- Announcement / closed today ---------- */

.mt-notice-bar {
	position: relative;
	z-index: 60;
	background: linear-gradient(90deg, var(--red-deep), var(--red) 50%, var(--red-deep));
	color: #fff;
	text-align: center;
	font-family: var(--f-cond);
	font-size: 0.82rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.mt-notice-bar p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 14px;
	margin: 0;
	padding: 10px var(--gutter);
}

.mt-notice-bar a {
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
}

.mt-notice-bar--closed {
	background: var(--ink-4);
}

/* ---------- Header ---------- */

.mt-header {
	position: fixed;
	top: var(--admin-h);
	left: 0;
	right: 0;
	z-index: 50;
	height: var(--header-h);
	color: var(--bone);
	transition: background-color 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease), height 0.35s var(--ease);
	border-bottom: 1px solid transparent;
}

/* Announcement bar pushes the header down until the page scrolls. */
.mt-has-notice .mt-header {
	position: absolute;
	top: calc(var(--admin-h) + var(--mt-notice-h, 40px));
}

.mt-has-notice .mt-header.is-scrolled {
	position: fixed;
	top: var(--admin-h);
}

/* Pages without a dark hero get a solid header from the start. */
body:not(.mt-designed) .mt-header,
.mt-header.is-scrolled {
	background: rgba(13, 10, 9, 0.93);
	border-bottom-color: var(--line);
	box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.9);
	-webkit-backdrop-filter: blur(10px) saturate(1.1);
	backdrop-filter: blur(10px) saturate(1.1);
}

.mt-designed .mt-header:not(.is-scrolled) {
	background: linear-gradient(180deg, rgba(13, 10, 9, 0.82), rgba(13, 10, 9, 0));
}

body:not(.mt-designed) .mt-main {
	padding-top: calc(var(--header-h) + var(--admin-h));
}

.mt-header__in {
	height: 100%;
	max-width: calc(var(--container) + 160px);
	margin-inline: auto;
	padding-inline: var(--gutter);
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.4vw, 40px);
}

.mt-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	flex: none;
	text-decoration: none;
}

.mt-brand__img {
	display: block;
	width: auto;
	height: 52px;
	transition: height 0.35s var(--ease);
}

.mt-brand__sub {
	font-family: var(--f-cond);
	font-size: 0.56rem;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--gold);
	padding-left: 0.42em;
}

.mt-header.is-scrolled .mt-brand__img {
	height: 44px;
}

/* Nav: the fallback list and wp_nav_menu() both render ul > li > a. */
.mt-nav {
	flex: 1;
	display: flex;
	justify-content: center;
	min-width: 0;
}

.mt-nav__list,
.mt-nav > ul {
	display: flex;
	align-items: center;
	gap: clamp(4px, 1.2vw, 18px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.mt-nav li {
	position: relative;
	list-style: none;
}

.mt-nav a {
	position: relative;
	display: block;
	padding: 10px 8px;
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-cond);
	font-size: 0.86rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
}

.mt-nav a::after {
	content: "";
	position: absolute;
	left: 8px;
	right: 8px;
	bottom: 4px;
	height: 1px;
	background: var(--red-text);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--ease);
}

.mt-nav a:hover,
.mt-nav .current-menu-item > a,
.mt-nav a[aria-current="page"] {
	color: var(--gold-hi);
}

.mt-nav a:hover::after,
.mt-nav .current-menu-item > a::after,
.mt-nav a[aria-current="page"]::after {
	transform: scaleX(1);
}

.mt-header__cta {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: none;
}

.mt-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-cond);
	font-size: 0.9rem;
	letter-spacing: 0.1em;
}

.mt-header__phone .ico {
	color: var(--gold);
}

.mt-header__phone:hover {
	color: var(--gold-hi);
}

.mt-header__order.mt-button {
	min-height: 46px;
	padding: 0.75em 1.35em;
	font-size: 0.8rem;
}

.mt-burger {
	display: none;
	width: 48px;
	height: 48px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: rgba(13, 10, 9, 0.4);
	color: var(--bone);
	cursor: pointer;
	place-items: center;
}

.mt-burger__bars {
	display: grid;
	gap: 5px;
	width: 22px;
}

.mt-burger__bars span {
	display: block;
	height: 1.5px;
	background: currentColor;
	transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
}

.mt-burger__bars span:nth-child(2) {
	width: 70%;
	margin-left: auto;
}

@media (max-width: 1240px) {
	.mt-header__phone span {
		display: none;
	}
}

@media (max-width: 1024px) {
	/* With JS: burger + drawer. Without JS: the nav stays, as a scrollable row. */
	html.js .mt-nav {
		display: none;
	}

	html.js .mt-burger {
		display: grid;
	}

	html:not(.js) .mt-header__in {
		flex-wrap: wrap;
		height: auto;
		padding-block: 10px;
	}

	html:not(.js) .mt-header {
		height: auto;
		position: absolute;
	}

	html:not(.js) .mt-nav {
		order: 3;
		flex-basis: 100%;
		overflow-x: auto;
		justify-content: flex-start;
	}

	.mt-header__cta {
		margin-left: auto;
		gap: 10px;
	}

	.mt-header__phone {
		display: none;
	}

	.mt-brand__img {
		height: 44px;
	}
}

@media (max-width: 560px) {
	.mt-header__order.mt-button {
		display: none;
	}

	.mt-brand__sub {
		display: none;
	}
}

/* ---------- Drawer ---------- */

.mt-drawer {
	display: none;
}

html.js .mt-drawer {
	display: block;
	position: fixed;
	inset: 0;
	z-index: 1000;
	visibility: hidden;
	pointer-events: none;
}

html.js .mt-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
}

.mt-drawer__scrim {
	position: absolute;
	inset: 0;
	background: rgba(5, 4, 3, 0.7);
	opacity: 0;
	transition: opacity 0.4s var(--ease);
}

.mt-drawer.is-open .mt-drawer__scrim {
	opacity: 1;
}

.mt-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(440px, 92vw);
	overflow-y: auto;
	padding: calc(var(--admin-h) + 22px) 30px calc(30px + env(safe-area-inset-bottom));
	background: var(--ink-2);
	background-image: radial-gradient(ellipse at 100% 0%, rgba(165, 29, 29, 0.22), transparent 55%);
	border-left: 1px solid var(--line-gold);
	transform: translateX(104%);
	transition: transform 0.5s var(--ease);
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.mt-drawer.is-open .mt-drawer__panel {
	transform: none;
}

.mt-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.mt-drawer__head img {
	height: 56px;
	width: auto;
}

.mt-drawer__close {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid var(--line-2);
	border-radius: 50%;
	background: none;
	color: var(--bone);
	cursor: pointer;
}

.mt-drawer__close .ico {
	width: 22px;
	height: 22px;
}

.mt-drawer__list,
.mt-drawer__nav > ul {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: mtnav;
}

.mt-drawer__nav li {
	list-style: none;
	border-bottom: 1px solid var(--line);
	counter-increment: mtnav;
}

.mt-drawer__nav a {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-display);
	font-size: 1.9rem;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.1;
	opacity: 0;
	transform: translateX(24px);
	transition: opacity 0.5s var(--ease), transform 0.5s var(--ease), color 0.2s ease;
}

.mt-drawer__nav a::before {
	content: counter(mtnav, upper-roman) ".";
	font-family: var(--f-cond);
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	color: var(--gold);
	min-width: 34px;
}

.mt-drawer.is-open .mt-drawer__nav a {
	opacity: 1;
	transform: none;
}

.mt-drawer.is-open .mt-drawer__nav li:nth-child(2) a { transition-delay: 0.05s; }
.mt-drawer.is-open .mt-drawer__nav li:nth-child(3) a { transition-delay: 0.1s; }
.mt-drawer.is-open .mt-drawer__nav li:nth-child(4) a { transition-delay: 0.15s; }
.mt-drawer.is-open .mt-drawer__nav li:nth-child(5) a { transition-delay: 0.2s; }
.mt-drawer.is-open .mt-drawer__nav li:nth-child(6) a { transition-delay: 0.25s; }

.mt-drawer__nav a:hover,
.mt-drawer__nav .current-menu-item > a {
	color: var(--gold-hi);
}

.mt-drawer__info {
	display: grid;
	gap: 16px;
	justify-items: start;
}

.mt-drawer__cta {
	display: grid;
	gap: 12px;
}

.mt-drawer__cta .mt-button {
	width: 100%;
}

.mt-drawer__addr {
	margin: 0;
	color: var(--muted);
	font-size: 0.98rem;
}

body.mt-drawer-open {
	overflow: hidden;
}

/* ---------- Footer ---------- */

.mt-footer {
	position: relative;
	background: #090706;
	border-top: 1px solid var(--line-gold);
	padding-top: clamp(64px, 8vw, 110px);
	color: var(--text);
}

/* Tricolore hairline */
.mt-footer::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 50%;
	width: 120px;
	height: 3px;
	transform: translateX(-50%);
	background: linear-gradient(90deg, #2f7a3b 0 33.3%, #efe6d6 33.3% 66.6%, var(--red) 66.6%);
}

.mt-footer__grid {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
	display: grid;
	grid-template-columns: 1.35fr 1fr 1fr 0.9fr;
	gap: clamp(32px, 4vw, 64px);
}

.mt-footer__logo img {
	display: block;
	width: 168px;
	height: auto;
}

.mt-footer__blurb {
	margin-top: 22px;
	max-width: 34ch;
	color: var(--muted);
	font-size: 1.04rem;
}

.mt-footer__title {
	margin: 0 0 22px;
	font-family: var(--f-cond);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--gold);
}

.mt-footer .mt-status {
	margin-bottom: 14px;
}

.mt-footer .mt-hourtable {
	font-size: 1rem;
}

.mt-footer__links {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	gap: 6px;
}

.mt-footer__links li {
	list-style: none;
}

.mt-footer__links a {
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-display);
	font-size: 1.12rem;
}

.mt-footer__links a:hover {
	color: var(--gold-hi);
}

.mt-footer__order.mt-button {
	min-height: 46px;
	padding: 0.7em 1.3em;
	font-size: 0.78rem;
}

.mt-footer__family {
	max-width: var(--container);
	margin: clamp(48px, 6vw, 80px) auto 0;
	padding: 26px var(--gutter);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 18px;
	text-align: center;
}

.mt-footer__family-label {
	font-family: var(--f-script);
	font-size: 1.7rem;
	color: var(--gold);
	line-height: 1;
}

.mt-footer__family a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-display);
	font-style: italic;
	font-size: 1.2rem;
}

.mt-footer__family a:hover {
	color: var(--gold-hi);
}

.mt-footer__bottom {
	max-width: var(--container);
	margin-inline: auto;
	padding: 26px var(--gutter) calc(26px + env(safe-area-inset-bottom));
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 24px;
	font-size: 0.92rem;
	color: var(--muted);
}

.mt-footer__bottom p {
	margin: 0;
}

.mt-footer__copy a {
	color: var(--muted);
	margin-left: 8px;
}

.mt-footer__sign {
	font-family: var(--f-script);
	font-size: 1.5rem;
	color: var(--gold);
	line-height: 1;
}

.ssq-credit {
	color: var(--muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ssq-credit:hover {
	color: #fff;
}

@media (max-width: 1024px) {
	.mt-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* Visit + Hours wrapper: invisible to the grid until phones turn it into a card. */
.mt-footer__card {
	display: contents;
}

/* Phones: centred brand, address + hours on one paper calling card, a two-up grid of
   big tappable links, then the sign-off. */
@media (max-width: 600px) {
	.mt-footer {
		padding-top: 52px;
	}

	.mt-footer__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.mt-footer__brand {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.mt-footer__logo img {
		width: 136px;
	}

	.mt-footer__blurb {
		margin: 16px auto 0;
		max-width: 30ch;
	}

	.mt-footer .mt-social {
		justify-content: center;
		margin-top: 16px;
	}

	.mt-footer__card {
		display: block;
		position: relative;
		padding: 34px 22px 24px;
		background-color: #efe4cc;
		background-image: url("../img/tex-paper.jpg");
		background-size: 420px auto;
		color: var(--paper-ink);
		box-shadow: 0 30px 40px -26px #000, 0 3px 8px rgba(0, 0, 0, 0.4), inset 0 0 60px rgba(140, 100, 50, 0.2);
		transform: rotate(-0.5deg);
	}

	/* Tablecloth hem along the top of the card */
	.mt-footer__card::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 8px;
		background: url("../img/tex-gingham.jpg") 0 0 / 72px 72px;
	}

	.mt-footer__card .mt-footer__title {
		margin-bottom: 14px;
		color: var(--paper-red);
	}

	.mt-footer__col--hours {
		margin-top: 22px;
		padding-top: 22px;
		border-top: 1px dashed rgba(34, 26, 21, 0.3);
	}

	.mt-footer__card .mt-addr__line {
		color: var(--paper-ink);
	}

	.mt-footer__card .mt-addr__line .ico {
		color: var(--paper-red);
	}

	.mt-footer__card .mt-status {
		background: var(--paper-ink);
		border-color: var(--paper-ink);
	}

	.mt-footer__card .mt-hourtable {
		max-width: none;
	}

	.mt-footer__card .mt-hourtable th {
		color: var(--paper-ink);
	}

	.mt-footer__card .mt-hourtable td {
		color: #3b2f26;
	}

	.mt-footer__card .mt-hourtable th,
	.mt-footer__card .mt-hourtable td {
		border-bottom-color: rgba(34, 26, 21, 0.24);
	}

	.mt-footer__card .mt-hourtable tr.is-closed td,
	.mt-footer__card .mt-hours-note {
		color: var(--paper-muted);
	}

	.mt-footer__card .mt-hourtable tr.is-today th,
	.mt-footer__card .mt-hourtable tr.is-today td {
		color: var(--paper-red);
	}

	.mt-footer__card .mt-hourtable tr.is-today th::after {
		background: var(--paper-red);
		color: #fff;
	}

	.mt-footer__col--explore .mt-footer__title {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 14px;
	}

	.mt-footer__col--explore .mt-footer__title::before,
	.mt-footer__col--explore .mt-footer__title::after {
		content: "";
		width: 32px;
		height: 1px;
		background: currentColor;
	}

	.mt-footer__links {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		margin-bottom: 14px;
	}

	.mt-footer__links li:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.mt-footer__links a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		min-height: 50px;
		padding: 0 16px;
		border: 1px solid var(--line-2);
		border-radius: var(--radius);
		background: rgba(239, 230, 214, 0.04);
		font-family: var(--f-cond);
		font-size: 0.82rem;
		letter-spacing: 0.16em;
		text-transform: uppercase;
	}

	.mt-footer__links a::after {
		content: "\2192";
		font-family: var(--f-body);
		color: var(--red-text);
	}

	.mt-footer__links .current-menu-item > a,
	.mt-footer__links a[aria-current="page"] {
		border-color: var(--line-gold);
		color: var(--gold-hi);
	}

	.mt-footer__order.mt-button {
		width: 100%;
		min-height: 52px;
		font-size: 0.86rem;
	}

	.mt-footer__family {
		flex-direction: column;
		gap: 4px;
		margin-top: 44px;
	}

	/* Inline, so the arrow follows the last word instead of hanging at the edge. */
	.mt-footer__family a {
		display: inline;
		max-width: 22ch;
	}

	.mt-footer__family a .ico {
		margin-left: 6px;
		vertical-align: -0.1em;
	}

	.mt-footer__bottom {
		justify-content: center;
		text-align: center;
		flex-direction: column;
		gap: 8px;
	}

	.mt-footer__sign {
		order: -1;
		font-size: 1.9rem;
	}
}

/* ---------- Mobile Call / Order bar ---------- */

.mt-mbar {
	display: none;
}

@media (max-width: 767px) {
	.mt-mbar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 40;
		display: grid;
		grid-template-columns: 1fr 1.6fr;
		background: var(--ink);
		border-top: 1px solid var(--line-gold);
		padding-bottom: env(safe-area-inset-bottom);
		transition: transform 0.4s var(--ease);
	}

	html.js .mt-mbar:not(.is-on) {
		transform: translateY(110%);
	}

	.mt-mbar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 60px;
		color: var(--bone);
		text-decoration: none;
		font-family: var(--f-cond);
		font-size: 0.86rem;
		letter-spacing: 0.18em;
		text-transform: uppercase;
	}

	.mt-mbar .ico {
		width: 18px;
		height: 18px;
	}

	.mt-mbar__call .ico {
		color: var(--gold);
	}

	.mt-mbar__order {
		background: var(--red);
		color: #fff;
	}

	body.mt-site {
		padding-bottom: calc(60px + env(safe-area-inset-bottom));
	}
}

/* ---- 05-sections.css ---- */
/* ==========================================================================
   Sections — the designed pages. Elementor replaces .container with
   .elementor-container, so layout lives on these classes:
   section.mt-* > .elementor-container > .elementor-column > .elementor-widget-wrap
   ========================================================================== */

/* Boxed width + gutters (Elementor's boxed width is 1140 and has no gutter). */
body .elementor .elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--container);
}

body .elementor-section.mt-sec > .elementor-container {
	padding-inline: var(--gutter);
}

body .elementor-section.mt-sec {
	padding-block: var(--section-y);
}

/* Section tones */
body .elementor-section.mt-dark {
	background-color: var(--ink);
}

body .elementor-section.mt-darker {
	background-color: var(--ink-2);
}

body .elementor-section.mt-red {
	background-color: var(--red-deep);
	background-image: radial-gradient(ellipse 70% 120% at 50% 0%, rgba(196, 42, 42, 0.55), transparent 70%), linear-gradient(180deg, #5e1111, #470c0c);
	color: #f7eee2;
}

/* Two-column sections: gutter between columns, vertically centred. */
body .elementor-section.mt-split > .elementor-container {
	align-items: center;
}

body .mt-split .elementor-column:first-child > .elementor-widget-wrap {
	padding-right: clamp(0px, 3vw, 56px);
}

body .mt-split .elementor-column:last-child > .elementor-widget-wrap {
	padding-left: clamp(0px, 3vw, 56px);
}

@media (max-width: 767px) {
	body .mt-split .elementor-column:first-child > .elementor-widget-wrap {
		padding-right: 0;
		padding-bottom: 56px;
	}

	body .mt-split .elementor-column:last-child > .elementor-widget-wrap {
		padding-left: 0;
	}
}

/* ==========================================================================
   Hero: copy on the left, a whole pie on the right that fades into the dark.
   Every piece is a plain widget; the photo is an image widget the client can swap.
   ========================================================================== */

body .elementor-section.mt-hero {
	isolation: isolate;
	overflow: hidden;
	background-color: var(--ink);
}

body .elementor-section.mt-hero > .elementor-container {
	min-height: min(100svh, 980px);
	max-width: none;
	align-items: stretch;
}

/* Candle-light spotlight over the photo; site.js moves it with the pointer. */
body .elementor-section.mt-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: radial-gradient(520px circle at var(--mx, 70%) var(--my, 45%), rgba(255, 196, 120, 0.08), transparent 70%);
}

body .mt-hero .mt-hero-main {
	z-index: 2;
}

/* Left edge lines up with the header's logo at every width. */
body .mt-hero .mt-hero-main > .elementor-widget-wrap {
	align-content: center;
	padding: calc(var(--header-h) + var(--admin-h) + 48px) clamp(16px, 2vw, 32px) clamp(56px, 8vh, 96px) max(var(--gutter), calc((100vw - var(--container) - 160px) / 2 + var(--gutter)));
}

body .elementor .mt-hero-status:not(:last-child) {
	margin-bottom: 28px;
}

body .elementor .mt-hero-title h1.elementor-heading-title {
	font-size: var(--fs-hero);
	line-height: 0.96;
	text-shadow: 0 6px 40px rgba(0, 0, 0, 0.6);
}

body .elementor .mt-hero-tag p {
	max-width: none;
	font-family: var(--f-cond);
	font-size: clamp(0.8rem, 0.7rem + 0.3vw, 0.98rem);
	font-weight: 500;
	letter-spacing: 0.32em;
	line-height: 1.85;
	text-transform: uppercase;
	color: var(--bone);
}

/* Three promises under the buttons: gold ring, label beneath. */
body .elementor .mt-hero-feats {
	margin-top: clamp(22px, 3.4vh, 40px);
}

body .elementor .mt-hero-feats .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	gap: 18px clamp(22px, 3vw, 46px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body .elementor .mt-hero-feats .elementor-icon-list-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	text-align: center;
}

body .elementor .mt-hero-feats .elementor-icon-list-icon {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border: 1px solid var(--line-gold);
	border-radius: 50%;
	background: rgba(13, 10, 9, 0.5);
}

body .elementor .mt-hero-feats .elementor-icon-list-icon i,
body .elementor .mt-hero-feats .elementor-icon-list-icon svg {
	width: 20px;
	height: 20px;
	font-size: 19px;
	color: var(--gold-hi);
	fill: var(--gold-hi);
}

body .elementor .mt-hero-feats .elementor-icon-list-icon .ico {
	fill: none;
}

body .elementor .mt-hero-feats .elementor-icon-list-text {
	max-width: 9em;
	padding: 0;
	font-family: var(--f-cond);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	line-height: 1.45;
	text-transform: uppercase;
	color: var(--bone);
}

/* Photo panel: reaches under the copy a little and fades out to the left. */
body .mt-hero .mt-hero-media {
	z-index: 1;
}

body .elementor .mt-hero-img {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: -14vw;
	width: auto;
	margin: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.5) 20%, #000 44%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.5) 20%, #000 44%);
}

body .elementor .mt-hero-img > .elementor-widget-container {
	height: 100%;
}

body .elementor .mt-hero-img img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 55% 50%;
}

body .mt-hero .mt-hero-media > .elementor-widget-wrap::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: -14vw;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse 56% 44% at 86% 15%, rgba(13, 10, 9, 0.9), rgba(13, 10, 9, 0) 74%),
		linear-gradient(180deg, rgba(13, 10, 9, 0.88) 0%, rgba(13, 10, 9, 0) 28%),
		linear-gradient(0deg, var(--ink) 0%, rgba(13, 10, 9, 0) 24%),
		radial-gradient(ellipse 85% 75% at 60% 55%, transparent 45%, rgba(13, 10, 9, 0.6) 100%);
}

body .elementor .mt-hero-quote {
	position: absolute;
	z-index: 2;
	top: calc(var(--header-h) + var(--admin-h) + 44px);
	right: max(var(--gutter), calc((100vw - var(--container) - 160px) / 2 + var(--gutter)));
	width: min(17em, 70%);
	margin: 0;
}

body .elementor .mt-hero-quote .elementor-heading-title {
	font-family: var(--f-body);
	font-size: clamp(1.15rem, 0.95rem + 0.6vw, 1.5rem);
	font-weight: 400;
	line-height: 1.35;
	color: var(--bone);
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.9), 0 0 30px rgba(0, 0, 0, 0.85);
}

body .elementor .mt-hero-quote .mt-sig {
	display: block;
	margin-top: 12px;
	padding-left: 2.4em;
	font-family: var(--f-script);
	font-size: 1.55em;
	line-height: 1;
	color: var(--gold-hi);
	text-shadow: 0 0 14px rgba(0, 0, 0, 0.95), 0 2px 4px #000;
}

body .elementor .mt-hero-quote .mt-sig::before {
	content: "\2014\00a0";
	font-family: var(--f-body);
	font-size: 0.5em;
	vertical-align: 0.35em;
}

/* Phones: the photo sits behind the copy, darkened. */
@media (max-width: 767px) {
	body .elementor-section.mt-hero > .elementor-container {
		min-height: 0;
	}

	body .mt-hero .mt-hero-main > .elementor-widget-wrap {
		padding: calc(var(--header-h) + var(--admin-h) + 36px) var(--gutter) 64px;
	}

	body .mt-hero .mt-hero-media {
		position: absolute;
		inset: 0;
		z-index: 0;
	}

	body .elementor .mt-hero-img {
		left: 0;
		-webkit-mask-image: none;
		mask-image: none;
	}

	body .mt-hero .mt-hero-media > .elementor-widget-wrap::after {
		left: 0;
		background: linear-gradient(180deg, rgba(13, 10, 9, 0.9) 0%, rgba(13, 10, 9, 0.72) 45%, rgba(13, 10, 9, 0.95) 100%);
	}

	body .elementor .mt-hero-quote {
		display: none;
	}

	body .elementor .mt-hero-tag p {
		font-size: 0.74rem;
		letter-spacing: 0.2em;
	}

	body .elementor .mt-hero-feats .elementor-icon-list-items {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 10px;
	}

	body .elementor .mt-hero-feats .elementor-icon-list-text {
		font-size: 0.64rem;
		letter-spacing: 0.16em;
	}
}

@media (max-height: 560px) and (orientation: landscape) {
	body .elementor-section.mt-hero > .elementor-container {
		min-height: 0;
	}
}

/* ==========================================================================
   Course tiles under the hero: framed photo cards; the whole tile is the link.
   ========================================================================== */

body .elementor-section.mt-cats {
	padding-block: clamp(26px, 3.4vw, 52px);
	border-bottom: 1px solid var(--line);
}

body .elementor-section.mt-cats > .elementor-container {
	padding-inline: calc(var(--gutter) - 10px);
}

body .mt-cats .mt-cat {
	padding: 0 10px;
}

body .mt-cats .mt-cat > .elementor-widget-wrap {
	position: relative;
	align-content: flex-start;
	padding: 14px 14px 22px;
	transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}

body .elementor .mt-cat-img {
	overflow: hidden;
}

body .elementor .mt-cat .elementor-widget-image:not(:last-child) {
	margin-bottom: 18px;
}

body .elementor .mt-cat-img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	filter: brightness(0.88);
	transition: transform 1.2s var(--ease), filter 0.6s ease;
}

body .mt-cat:hover .mt-cat-img img {
	transform: scale(1.06);
	filter: brightness(1);
}

body .elementor .mt-cat .elementor-widget-heading.mt-cat-title:not(:last-child) {
	margin-bottom: 6px;
}

body .elementor .mt-cat-title h2.elementor-heading-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 0 8px;
	font-family: var(--f-cond);
	font-size: clamp(1.3rem, 1rem + 0.8vw, 1.85rem);
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--bone);
}

body .elementor .mt-cat-title h2.elementor-heading-title::after {
	content: "\2192";
	flex: none;
	font-family: var(--f-body);
	font-size: 0.8em;
	color: var(--red-text);
	transition: transform 0.3s var(--ease);
}

body .mt-cat:hover .mt-cat-title h2.elementor-heading-title::after {
	transform: translateX(5px);
}

body .elementor .mt-cat-title .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

/* Stretch the title link over the whole tile (not in the editor, where it would
   swallow clicks meant for the photo and label). */
body:not(.elementor-editor-active) .elementor .mt-cat-title {
	position: static;
}

body:not(.elementor-editor-active) .elementor .mt-cat-title .elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

body .elementor .mt-cat-sub .elementor-heading-title {
	padding: 0 8px;
	font-family: var(--f-cond);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.26em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--muted);
}

@media (max-width: 1024px) {
	body .mt-cats .elementor-column {
		width: 50%;
		margin-bottom: 20px;
	}
}

@media (max-width: 480px) {
	body .mt-cats .mt-cat {
		padding: 0 6px;
	}

	body .elementor-section.mt-cats > .elementor-container {
		padding-inline: calc(var(--gutter) - 6px);
	}

	body .mt-cats .mt-cat > .elementor-widget-wrap {
		padding: 6px 6px 16px;
	}

	body .elementor .mt-cat-title h2.elementor-heading-title {
		padding: 0 4px;
		font-size: 1.1rem;
	}

	body .elementor .mt-cat-sub .elementor-heading-title {
		padding: 0 4px;
		font-size: 0.6rem;
		letter-spacing: 0.18em;
	}
}

/* ==========================================================================
   Favorites (featured cards)
   ========================================================================== */

body .elementor .mt-featured-grid {
	margin: 30px 0 56px;
}

.mt-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2.2vw, 32px);
}

.mt-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: linear-gradient(180deg, var(--ink-3), #120e0c);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
	transition: transform 0.45s var(--ease), border-color 0.45s var(--ease), box-shadow 0.45s var(--ease);
}

.mt-card:hover {
	transform: translateY(-6px);
	border-color: var(--line-gold);
	box-shadow: 0 40px 70px -40px rgba(0, 0, 0, 0.95), 0 0 0 1px rgba(201, 163, 92, 0.12);
}

.mt-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #0f0b0a;
}

body .elementor .mt-card__media img,
.mt-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease), filter 0.6s ease;
	filter: saturate(1.04) contrast(1.02);
}

.mt-card:hover .mt-card__media img {
	transform: scale(1.06);
}

.mt-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 10, 9, 0) 55%, rgba(13, 10, 9, 0.75) 100%);
	pointer-events: none;
}

.mt-card__media .mt-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
}

.mt-card__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	color: var(--gold);
	background: radial-gradient(circle, #241b17, #0f0b0a 70%);
}

.mt-card__placeholder .ico {
	width: 64px;
	height: 64px;
	opacity: 0.5;
}

.mt-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
	padding: clamp(20px, 2vw, 28px);
}

.mt-card__top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

.mt-card__name {
	margin: 0;
	font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.6rem);
	line-height: 1.15;
}

.mt-card__name a {
	color: var(--bone);
	text-decoration: none;
}

.mt-card__name a:hover {
	color: var(--gold-hi);
}

.mt-card__top .mt-price {
	font-size: 1.55rem;
}

.mt-card__desc {
	margin: 0;
	color: var(--muted);
	font-size: 1.02rem;
	line-height: 1.5;
}

.mt-card__order {
	margin-top: auto;
	padding-top: 10px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	color: var(--red-text);
	text-decoration: none;
	font-family: var(--f-cond);
	font-size: 0.8rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.mt-card__order .ico {
	transition: transform 0.3s var(--ease);
}

.mt-card__order:hover {
	color: var(--bone);
}

.mt-card__order:hover .ico {
	transform: translateX(5px);
}

.mt-card.is-soldout .mt-card__media img {
	filter: grayscale(1) brightness(0.6);
}

@media (max-width: 1024px) {
	.mt-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Phones: favourites become a swipeable row instead of six full-width cards. */
@media (max-width: 640px) {
	.mt-cards {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 82%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--gutter);
		margin-inline: calc(var(--gutter) * -1);
		padding: 4px var(--gutter) 18px;
		scrollbar-width: thin;
		scrollbar-color: var(--gold) transparent;
	}

	.mt-card {
		scroll-snap-align: start;
	}

	.mt-card:hover {
		transform: none;
	}
}

/* ==========================================================================
   Story split
   ========================================================================== */

body .elementor-section.mt-story {
	overflow: hidden;
}

body .elementor .mt-story-copy .elementor-widget-text-editor p {
	max-width: 52ch;
}

body .elementor .mt-story-copy .mt-signoff:not(:last-child) {
	margin-bottom: 30px;
}

/* ==========================================================================
   Story, three panels: old photograph | the story | a framed, hand-signed quote
   ========================================================================== */

body .elementor-section.mt-story3 {
	border-bottom: 1px solid var(--line);
}

body .elementor-section.mt-story3 > .elementor-container {
	max-width: none;
	min-height: clamp(460px, 38vw, 640px);
	align-items: stretch;
}

body .elementor .mt-story3-img {
	position: absolute;
	inset: 0;
	width: auto;
	margin: 0;
	overflow: hidden;
}

body .elementor .mt-story3-img > .elementor-widget-container {
	height: 100%;
}

body .elementor .mt-story3-img img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	filter: brightness(0.86);
	transition: filter 0.8s ease, transform 1.2s var(--ease);
}

body .mt-story3-media:hover .mt-story3-img img {
	filter: brightness(1);
	transform: scale(1.03);
}

body .mt-story3 .mt-story3-copy > .elementor-widget-wrap {
	align-content: center;
	padding: clamp(48px, 6vw, 96px) clamp(28px, 4vw, 72px);
}

body .elementor .mt-eyebrow-red .elementor-heading-title {
	color: var(--red-text);
}

body .elementor .mt-h2-sm h2.elementor-heading-title {
	font-size: clamp(1.7rem, 1.1rem + 1.2vw, 2.5rem);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.12;
}

body .elementor .mt-h2-sm h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 46px;
	height: 2px;
	margin-top: 22px;
	background: var(--red);
}

body .mt-story3 .mt-story3-quote > .elementor-widget-wrap {
	position: relative;
	align-content: center;
	justify-content: center;
	padding: clamp(56px, 6vw, 96px) clamp(32px, 4vw, 64px);
	background:
		radial-gradient(ellipse 70% 60% at 50% 45%, rgba(201, 163, 92, 0.08), transparent 70%),
		linear-gradient(160deg, #1a1412, #0e0b0a);
	border-left: 1px solid var(--line);
}

/* A thin brass frame around the quote, like a sign on the wall. */
body .mt-story3 .mt-story3-quote > .elementor-widget-wrap::before {
	content: "";
	position: absolute;
	inset: clamp(16px, 2vw, 28px);
	border: 1px solid var(--line-gold);
	pointer-events: none;
}

body .elementor .mt-script-quote .elementor-heading-title {
	font-family: var(--f-script);
	font-size: clamp(2.3rem, 1.3rem + 2.2vw, 3.8rem);
	font-weight: 400;
	line-height: 1.12;
	color: var(--bone);
	transform: rotate(-5deg);
}

body .elementor .mt-script-quote:not(:last-child) {
	margin-bottom: 22px;
}

body .elementor .mt-script-sign .elementor-heading-title {
	padding-left: 3em;
	font-family: var(--f-script);
	font-size: clamp(1.6rem, 1.2rem + 0.9vw, 2.2rem);
	line-height: 1;
	color: var(--gold-hi);
	transform: rotate(-5deg);
}

@media (max-width: 1024px) {
	body .mt-story3 .elementor-column.mt-story3-media,
	body .mt-story3 .elementor-column.mt-story3-copy {
		width: 50%;
	}

	body .mt-story3 .elementor-column.mt-story3-quote {
		width: 100%;
	}

	body .mt-story3 .mt-story3-quote > .elementor-widget-wrap {
		border-left: 0;
		border-top: 1px solid var(--line);
	}
}

@media (max-width: 767px) {
	body .mt-story3 .elementor-column.mt-story3-media,
	body .mt-story3 .elementor-column.mt-story3-copy {
		width: 100%;
	}

	body .mt-story3 .mt-story3-media {
		min-height: 300px;
	}
}

/* ==========================================================================
   Catering band: wine-dark over a pie, the occasions written by hand
   ========================================================================== */

body .elementor-section.mt-cater {
	isolation: isolate;
	overflow: hidden;
	background-color: var(--wine);
}

body .elementor-section.mt-cater::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(58, 11, 11, 0.97) 0%, rgba(58, 11, 11, 0.92) 42%, rgba(36, 9, 8, 0.8) 70%, rgba(13, 10, 9, 0.86) 100%),
		linear-gradient(0deg, rgba(13, 10, 9, 0.55) 0%, rgba(13, 10, 9, 0) 45%);
}

body .elementor-section.mt-cater > .elementor-container {
	align-items: center;
}

body .elementor .mt-cater .mt-eyebrow .elementor-heading-title,
body .elementor .mt-cater .elementor-heading-title em {
	color: #f2c9a0;
}

body .elementor .mt-cater .mt-lede p {
	max-width: 46ch;
	color: rgba(251, 243, 230, 0.9);
}

body .mt-cater .mt-cater-list > .elementor-widget-wrap {
	justify-content: center;
}

body .elementor .mt-script-list {
	width: auto;
	transform: rotate(-4deg);
}

body .elementor .mt-script-list .elementor-icon-list-items {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 0;
}

body .elementor .mt-script-list .elementor-icon-list-item {
	gap: 16px;
	align-items: center;
}

body .elementor .mt-script-list .elementor-icon-list-icon i,
body .elementor .mt-script-list .elementor-icon-list-icon svg {
	width: 18px;
	height: 18px;
	font-size: 16px;
	color: var(--gold-hi);
	fill: var(--gold-hi);
}

body .elementor .mt-script-list .elementor-icon-list-icon .ico {
	fill: none;
}

body .elementor .mt-script-list .elementor-icon-list-text {
	padding: 0;
	font-family: var(--f-script);
	font-size: clamp(1.9rem, 1.4rem + 1.1vw, 2.7rem);
	line-height: 1.3;
	color: var(--bone);
}

@media (max-width: 767px) {
	body .mt-cater .mt-cater-list > .elementor-widget-wrap {
		justify-content: flex-start;
		padding-top: 44px;
	}
}

/* ==========================================================================
   Visit band: address | hours | a neon sign on the brick
   ========================================================================== */

body .elementor-section.mt-visitband > .elementor-container {
	align-items: stretch;
}

body .mt-visitband .mt-vb-visit > .elementor-widget-wrap,
body .mt-visitband .mt-vb-hours > .elementor-widget-wrap {
	align-content: flex-start;
	padding: 6px clamp(18px, 3vw, 52px) 6px 0;
}


body .elementor .mt-band-title h2.elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--f-cond);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--bone);
}

body .elementor .mt-band-title h2.elementor-heading-title::after {
	content: "";
	width: 38px;
	height: 1px;
	background: var(--red-text);
}

body .mt-visitband .mt-vb-sign > .elementor-widget-wrap {
	align-content: center;
	justify-content: center;
	min-height: 320px;
	padding: 40px 24px;
	background-color: #120b09;
	background-image:
		radial-gradient(ellipse 60% 55% at 50% 50%, rgba(196, 42, 42, 0.24), transparent 70%),
		radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.75) 100%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32'%3E%3Cg fill='%23291813'%3E%3Crect x='1' y='1' width='62' height='14' rx='1'/%3E%3Crect x='-31' y='17' width='62' height='14' rx='1'/%3E%3Crect x='33' y='17' width='62' height='14' rx='1'/%3E%3C/g%3E%3C/svg%3E");
	border: 1px solid var(--line);
	box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.85);
}

body .elementor .mt-neon .elementor-heading-title {
	font-family: var(--f-script);
	font-size: clamp(2.6rem, 1.8rem + 2vw, 3.9rem);
	font-weight: 400;
	line-height: 1.05;
	text-align: center;
	color: #ffe6df;
	transform: rotate(-6deg);
	text-shadow: 0 0 2px #fff, 0 0 8px #ff5a4e, 0 0 18px #e0262b, 0 0 36px #c42a2a, 0 0 72px rgba(196, 42, 42, 0.8);
	animation: mt-neon 7s linear infinite;
}

/* Tricolore tab under the sign */
body .elementor .mt-neon .elementor-heading-title::after {
	content: "";
	display: block;
	width: 48px;
	height: 10px;
	margin: 22px auto 0;
	background: linear-gradient(90deg, #2f7a3b 0 33.3%, #efe6d6 33.3% 66.6%, var(--red-hi) 66.6%);
	box-shadow: 0 0 14px rgba(255, 255, 255, 0.15);
}

@keyframes mt-neon {
	0%, 90%, 92.5%, 95.5%, 100% { opacity: 1; }
	91.5% { opacity: 0.55; }
	94% { opacity: 0.75; }
}

@media (prefers-reduced-motion: reduce) {
	body .elementor .mt-neon .elementor-heading-title {
		animation: none;
	}
}

@media (max-width: 1024px) {
	body .mt-visitband .elementor-column.mt-vb-visit,
	body .mt-visitband .elementor-column.mt-vb-hours {
		width: 50%;
	}

	body .mt-visitband .elementor-column.mt-vb-sign {
		width: 100%;
		margin-top: 40px;
	}
}

@media (max-width: 767px) {
	body .mt-visitband .elementor-column.mt-vb-visit,
	body .mt-visitband .elementor-column.mt-vb-hours {
		width: 100%;
	}

}

/* ==========================================================================
   Visit
   ========================================================================== */

body .elementor .mt-map .mt-mapframe {
	height: clamp(340px, 42vw, 560px);
}

/* ==========================================================================
   Family (steakhouse) band
   ========================================================================== */

body .elementor-section.mt-family {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-top: 1px solid var(--line);
}

body .elementor-section.mt-family::before {
	content: "Famiglia";
	position: absolute;
	z-index: -1;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(-6deg);
	font-family: var(--f-script);
	font-size: clamp(8rem, 22vw, 20rem);
	line-height: 1;
	color: rgba(201, 163, 92, 0.06);
	white-space: nowrap;
	pointer-events: none;
}

body .mt-family .mt-family-col > .elementor-widget-wrap,
body .mt-cta .mt-cta-col > .elementor-widget-wrap {
	justify-content: center;
}

/* ==========================================================================
   CTA band
   ========================================================================== */

body .elementor .mt-cta .elementor-heading-title {
	color: #fbf3e6;
}

body .elementor .mt-cta .mt-eyebrow .elementor-heading-title {
	color: #f5d9a8;
}

body .elementor .mt-cta .elementor-heading-title em {
	color: #f5d9a8;
}

body .elementor .mt-cta .mt-lede p {
	color: rgba(251, 243, 230, 0.9);
}

/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */

body .elementor-section.mt-pagehero {
	isolation: isolate;
	overflow: hidden;
	background-color: var(--ink);
}

body .elementor-section.mt-pagehero > .elementor-container {
	min-height: min(72svh, 720px);
	padding: calc(var(--header-h) + var(--admin-h) + 60px) var(--gutter) clamp(56px, 7vw, 96px);
	align-items: flex-end;
}

body .elementor-section.mt-pagehero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(13, 10, 9, 0.95) 0%, rgba(13, 10, 9, 0.75) 45%, rgba(13, 10, 9, 0.35) 100%),
		linear-gradient(0deg, var(--ink) 0%, rgba(13, 10, 9, 0) 45%),
		linear-gradient(180deg, rgba(13, 10, 9, 0.8) 0%, rgba(13, 10, 9, 0) 30%);
}

body .elementor .mt-pagehero-col .mt-lede p {
	max-width: 50ch;
}

/* ==========================================================================
   Timeline + values (Our Story)
   ========================================================================== */

.mt-timeline {
	list-style: none;
	margin: 50px auto 0;
	padding: 0;
	max-width: 860px;
	position: relative;
}

.mt-timeline::before {
	content: "";
	position: absolute;
	left: 118px;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: linear-gradient(180deg, transparent, var(--line-gold) 8%, var(--line-gold) 92%, transparent);
}

.mt-timeline li {
	position: relative;
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: 42px;
	padding: 18px 0;
}

.mt-timeline li::before {
	content: "";
	position: absolute;
	left: 113px;
	top: 31px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ink);
	border: 1px solid var(--gold);
	box-shadow: 0 0 0 4px var(--ink);
}

.mt-timeline strong {
	font-family: var(--f-display);
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--gold-hi);
	text-align: right;
	line-height: 1.2;
}

.mt-timeline span {
	font-size: 1.12rem;
	color: var(--text);
	padding-top: 6px;
}

body .elementor .mt-timeline-widget p {
	max-width: none;
}

@media (max-width: 600px) {
	.mt-timeline::before {
		left: 6px;
	}

	.mt-timeline li {
		grid-template-columns: 1fr;
		gap: 4px;
		padding-left: 34px;
	}

	.mt-timeline li::before {
		left: 1px;
	}

	.mt-timeline strong {
		text-align: left;
	}
}

body .mt-values .elementor-column > .elementor-widget-wrap {
	margin: 0 clamp(8px, 1.2vw, 18px);
	padding: clamp(28px, 3vw, 44px);
	align-content: flex-start;
}

body .elementor .mt-numeral .elementor-heading-title {
	font-family: var(--f-display);
	font-style: italic;
	font-size: 2.6rem;
	color: var(--red-text);
	line-height: 1;
}

body .elementor .mt-numeral:not(:last-child) {
	margin-bottom: 18px;
}

@media (max-width: 767px) {
	body .mt-values .elementor-column > .elementor-widget-wrap {
		margin: 0 0 18px;
	}
}

/* ==========================================================================
   Catering + contact
   ========================================================================== */

body .elementor .mt-iconlist .elementor-icon-list-items {
	display: grid;
	gap: 14px;
	margin: 6px 0 10px;
}

body .elementor .mt-iconlist .elementor-icon-list-item {
	gap: 14px;
	font-size: 1.12rem;
	color: var(--bone);
}

body .elementor .mt-iconlist .elementor-icon-list-icon i,
body .elementor .mt-iconlist .elementor-icon-list-icon svg {
	color: var(--gold);
	fill: var(--gold);
	width: 20px;
	height: 20px;
	font-size: 18px;
}

body .elementor .mt-iconlist .elementor-icon-list-icon .ico {
	fill: none;
}

body .elementor .mt-iconlist .elementor-icon-list-text {
	color: var(--bone);
	font-family: var(--f-body);
}

body .elementor .mt-iconlist a:hover .elementor-icon-list-text {
	color: var(--gold-hi);
}

body .elementor .mt-iconlist:not(:last-child) {
	margin-bottom: 30px;
}

body .elementor-section.mt-mapband .mt-mapframe {
	border-left: 0;
	border-right: 0;
	border-radius: 0;
	box-shadow: none;
}

/* ==========================================================================
   Generic pages
   ========================================================================== */

.mt-banner {
	position: relative;
	padding: clamp(70px, 9vw, 130px) 0 clamp(50px, 6vw, 80px);
	background: radial-gradient(ellipse 70% 80% at 20% 0%, rgba(165, 29, 29, 0.2), transparent 70%), var(--ink-2);
	border-bottom: 1px solid var(--line);
}

.mt-banner__title {
	margin: 18px 0 0;
	font-size: var(--fs-h1-page);
	font-weight: 900;
	text-transform: uppercase;
	line-height: 0.98;
}

.mt-prose {
	max-width: min(78ch, 100%);
	padding-block: clamp(50px, 6vw, 90px);
}

.mt-prose p,
.mt-prose li {
	max-width: 70ch;
}

.mt-prose h2 {
	margin-top: 1.6em;
	font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem);
}

.mt-prose a {
	color: var(--red-text);
}

.mt-prose__hero {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 40px;
	border-radius: var(--radius);
}

.mt-posts {
	display: grid;
	gap: 32px;
	padding-block: clamp(50px, 6vw, 90px);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}

.mt-post {
	background: var(--ink-3);
	border: 1px solid var(--line);
}

.mt-post__img img {
	display: block;
	width: 100%;
	height: auto;
}

.mt-post__body {
	padding: 24px;
}

.mt-post__date {
	font-family: var(--f-cond);
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: 8px;
}

.mt-post__title a {
	color: var(--bone);
	text-decoration: none;
}

/* ---------- 404 ---------- */

.mt-404 {
	position: relative;
	min-height: 80svh;
	display: grid;
	align-items: center;
	text-align: center;
	padding-block: clamp(80px, 10vw, 140px);
	overflow: hidden;
	background: radial-gradient(ellipse at 50% 40%, rgba(165, 29, 29, 0.25), transparent 60%), var(--ink);
}

.mt-404__code {
	font-family: var(--f-display);
	font-size: clamp(9rem, 28vw, 22rem);
	font-weight: 900;
	line-height: 0.8;
	margin: 0 0 10px;
	color: transparent;
	-webkit-text-stroke: 1px var(--line-gold);
}

.mt-404__title {
	font-size: clamp(2.2rem, 1.4rem + 3vw, 4.4rem);
	text-transform: uppercase;
	font-weight: 900;
}

.mt-404__title em {
	color: var(--red-text);
	text-transform: none;
}

.mt-404__text {
	max-width: 46ch;
	margin: 0 auto 34px;
	font-size: var(--fs-lede);
	color: var(--muted);
}

.mt-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}

/* ---- 06-menu.css ---- */
/* ==========================================================================
   The Menu ([mamat_menu])
   ========================================================================== */

body .elementor-section.mt-menu-sec {
	padding-top: clamp(30px, 4vw, 60px);
	background-image: radial-gradient(ellipse 50% 30% at 50% 0%, rgba(201, 163, 92, 0.06), transparent 70%);
}

.mt-menu {
	position: relative;
}

/* Sticky section nav + search */
.mt-menu-nav {
	position: sticky;
	top: calc(var(--admin-h) + var(--header-h) - 1px);
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 calc(var(--gutter) * -1) 20px;
	padding: 14px var(--gutter);
	background: rgba(13, 10, 9, 0.94);
	border-bottom: 1px solid var(--line);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.mt-menu-nav__chips {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	flex: 1;
	min-width: 0;
	-webkit-mask-image: linear-gradient(90deg, #000 92%, transparent);
	mask-image: linear-gradient(90deg, #000 92%, transparent);
}

.mt-menu-nav__chips::-webkit-scrollbar {
	display: none;
}

.mt-chip {
	flex: none;
	padding: 10px 18px;
	border: 1px solid var(--line-2);
	border-radius: 999px;
	color: var(--bone);
	text-decoration: none;
	font-family: var(--f-cond);
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.mt-chip:hover {
	border-color: var(--gold);
	color: var(--gold-hi);
}

.mt-chip.is-active {
	background: var(--red);
	border-color: var(--red);
	color: #fff;
}

.mt-menu-search {
	position: relative;
	flex: 0 1 280px;
	display: flex;
	align-items: center;
}

.mt-menu-search .ico {
	position: absolute;
	left: 14px;
	width: 17px;
	height: 17px;
	color: var(--gold);
	pointer-events: none;
}

.mt-menu-search input {
	width: 100%;
	height: 44px;
	padding: 0 16px 0 42px;
	border: 1px solid var(--line-2);
	border-radius: 999px;
	background: #0a0807;
	color: var(--bone);
	font-family: var(--f-body);
	font-size: 1.02rem;
}

.mt-menu-search input::placeholder {
	color: var(--muted);
}

.mt-menu-search input:focus-visible {
	outline: 2px solid var(--gold-hi);
	outline-offset: 2px;
	border-color: transparent;
}

@media (max-width: 720px) {
	.mt-menu-nav {
		flex-wrap: wrap;
		gap: 10px;
		padding-block: 10px;
	}

	.mt-menu-search {
		flex: 1 1 100%;
		order: -1;
	}
}

/* Courses */
.mt-course {
	padding-top: clamp(60px, 7vw, 110px);
	scroll-margin-top: calc(var(--header-h) + var(--admin-h) + 80px);
}

.mt-course:first-of-type {
	padding-top: clamp(30px, 4vw, 60px);
}

.mt-course__head {
	text-align: center;
	margin-bottom: clamp(34px, 4vw, 56px);
}

.mt-course__num {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--f-cond);
	font-size: 0.78rem;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: var(--gold);
}

.mt-course__num::before,
.mt-course__num::after {
	content: "";
	width: 30px;
	height: 1px;
	background: currentColor;
}

.mt-course__title {
	margin: 14px 0 12px;
	font-size: clamp(2.4rem, 1.5rem + 3vw, 4.2rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: -0.005em;
	line-height: 1;
}

.mt-course__desc {
	max-width: 56ch;
	margin: 0 auto;
	font-style: italic;
	color: var(--muted);
	font-size: 1.12rem;
}

.mt-course__head::after {
	content: "\2726";
	display: block;
	margin-top: 22px;
	color: var(--red-text);
	font-size: 0.9rem;
}

/* Dish rows */
.mt-dishes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px clamp(36px, 5vw, 80px);
}

@media (max-width: 860px) {
	.mt-dishes {
		grid-template-columns: 1fr;
	}
}

.mt-dish-row {
	display: flex;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
	scroll-margin-top: calc(var(--header-h) + var(--admin-h) + 100px);
}

.mt-dish-row:target {
	animation: mt-flash 2.4s ease 1;
}

@keyframes mt-flash {
	0%, 40% { background: rgba(201, 163, 92, 0.12); }
	100% { background: transparent; }
}

.mt-dish-row__img {
	flex: none;
	width: 92px;
	height: 92px;
	margin: 2px 0 0;
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--line-gold);
	box-shadow: 0 14px 26px -16px #000;
}

.mt-dish-row__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mt-dish-row__body {
	flex: 1;
	min-width: 0;
}

.mt-dish-row__top {
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.mt-dish-row__name {
	margin: 0;
	font-size: clamp(1.22rem, 1.1rem + 0.35vw, 1.42rem);
	font-weight: 700;
	line-height: 1.25;
}

.mt-dish-row__dots {
	flex: 1;
	min-width: 20px;
	border-bottom: 2px dotted rgba(201, 163, 92, 0.38);
	transform: translateY(-5px);
}

.mt-dish-row__top .mt-price {
	font-size: 1.38rem;
}

.mt-dish-row__desc {
	margin: 6px 0 0;
	color: var(--muted);
	font-size: 1.04rem;
	line-height: 1.5;
}

.mt-dish-row__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 12px 0 0;
}

.mt-dish-row__note {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-style: italic;
	color: var(--gold);
	font-size: 0.98rem;
}

.mt-dish-row.is-soldout {
	opacity: 0.62;
}

.mt-dish-row.is-featured .mt-dish-row__name {
	color: var(--gold-hi);
}

.mt-dish-row[hidden],
.mt-course[hidden] {
	display: none;
}

.mt-menu-noresults {
	text-align: center;
	padding: 60px 0;
	font-style: italic;
	color: var(--muted);
	font-size: 1.2rem;
}

.mt-menu-empty {
	padding: 30px;
	border: 1px dashed var(--line-gold);
	text-align: center;
	color: var(--muted);
}

/* Build your own: a printed order slip on parchment */
.mt-byo {
	margin-top: clamp(70px, 8vw, 120px);
	padding: clamp(40px, 5vw, 72px) clamp(22px, 4vw, 64px);
	background:
		radial-gradient(ellipse at 0% 0%, rgba(255, 255, 255, 0.5), transparent 50%),
		radial-gradient(ellipse at 100% 100%, rgba(120, 80, 40, 0.18), transparent 60%),
		var(--paper);
	color: var(--paper-ink);
	border-radius: var(--radius);
	box-shadow: 0 50px 80px -50px rgba(0, 0, 0, 0.9), inset 0 0 0 1px rgba(34, 26, 21, 0.12), inset 0 0 0 10px var(--paper), inset 0 0 0 11px rgba(165, 29, 29, 0.35);
	position: relative;
}

.mt-byo .mt-course__num,
.mt-byo .mt-course__head::after {
	color: var(--red);
}

.mt-byo .mt-course__title {
	color: var(--paper-ink);
}

.mt-byo .mt-course__desc {
	color: var(--paper-muted);
}

.mt-byo__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 28px clamp(20px, 2.4vw, 36px);
}

@media (max-width: 1100px) {
	.mt-byo__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.mt-byo__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 440px) {
	.mt-byo__grid {
		grid-template-columns: 1fr;
	}
}

.mt-byo__title {
	margin: 0 0 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--paper-ink);
	font-family: var(--f-cond);
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--red);
}

.mt-byo__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mt-byo__list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	padding: 7px 0;
	border-bottom: 1px dashed rgba(34, 26, 21, 0.22);
	font-size: 1.02rem;
	line-height: 1.3;
	color: var(--paper-ink);
}

.mt-byo__list em {
	font-style: normal;
	font-family: var(--f-display);
	font-weight: 700;
	color: var(--red);
	white-space: nowrap;
}

.mt-byo__note {
	margin: 30px 0 0;
	text-align: center;
	font-style: italic;
	color: var(--paper-muted);
	font-size: 1.08rem;
}

/* ---- 07-forms.css ---- */
/* ==========================================================================
   Forms ([mamat_form])
   ========================================================================== */

.mt-formcard {
	position: relative;
	padding: clamp(26px, 3.4vw, 48px);
	background: linear-gradient(180deg, var(--ink-3), #110d0b);
	border: 1px solid var(--line-gold);
	border-radius: var(--radius);
	box-shadow: var(--shadow-deep);
}

.mt-formcard::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 40px;
	width: 90px;
	height: 3px;
	background: var(--red);
}

.mt-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 22px;
}

.mt-form__field {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.mt-form__field--wide {
	grid-column: 1 / -1;
}

@media (max-width: 600px) {
	.mt-form__grid {
		grid-template-columns: 1fr;
	}
}

.mt-form label {
	font-family: var(--f-cond);
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--bone);
}

.mt-req {
	color: var(--red-text);
}

.mt-opt {
	color: var(--muted);
	letter-spacing: 0.08em;
	text-transform: none;
	font-family: var(--f-body);
	font-style: italic;
	font-size: 0.95rem;
}

.mt-form input,
.mt-form select,
.mt-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 16px;
	border: 1px solid #3b302a;
	border-radius: var(--radius);
	background: #0b0908;
	color: var(--bone);
	font-family: var(--f-body);
	font-size: 1.1rem;
	line-height: 1.4;
	transition: border-color 0.2s ease, background 0.2s ease;
	color-scheme: dark;
}

.mt-form textarea {
	min-height: 130px;
	resize: vertical;
}

.mt-form input:hover,
.mt-form select:hover,
.mt-form textarea:hover {
	border-color: #57473d;
}

.mt-form input:focus-visible,
.mt-form select:focus-visible,
.mt-form textarea:focus-visible {
	outline: 2px solid var(--gold-hi);
	outline-offset: 1px;
	border-color: var(--gold);
	background: #100c0b;
}

.mt-form input:user-invalid,
.mt-form textarea:user-invalid {
	border-color: var(--red-hi);
}

.mt-form ::placeholder {
	color: #7d7062;
}

.mt-form__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 24px;
	margin-top: 26px;
}

.mt-form__fine {
	margin: 0;
	color: var(--muted);
	font-size: 0.95rem;
	font-style: italic;
}

.mt-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mt-form-ok,
.mt-form-err {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 26px;
	padding: 18px 20px;
	border-radius: var(--radius);
}

.mt-form-ok {
	background: rgba(79, 139, 73, 0.14);
	border: 1px solid rgba(111, 191, 102, 0.45);
	color: var(--bone);
}

.mt-form-ok .ico {
	width: 26px;
	height: 26px;
	color: var(--basil-hi);
}

.mt-form-ok strong {
	font-family: var(--f-display);
	font-size: 1.2rem;
}

.mt-form-ok p {
	margin: 4px 0 0;
	color: var(--text);
}

.mt-form-err {
	background: rgba(165, 29, 29, 0.16);
	border: 1px solid rgba(226, 85, 74, 0.5);
	color: #ffd9d4;
}

/* ---- 08-motion.css ---- */
/* ==========================================================================
   Motion. Fail open: nothing is hidden unless site.js is running (it adds html.js
   AND the .mt-r class to what it will reveal), and never in the Elementor editor.
   ========================================================================== */

html.js .mt-r {
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
	transition-delay: var(--mt-d, 0s);
}

html.js .mt-r:not(.in) {
	opacity: 0;
	transform: translateY(28px);
}

body.elementor-editor-active .mt-r,
body.elementor-editor-active .mt-r:not(.in) {
	opacity: 1 !important;
	transform: none !important;
}

/* Hero title: letters settle in like opening credits. */
html.js .mt-hero-title.mt-r:not(.in) {
	transform: translateY(14px);
	filter: blur(6px);
}

html.js .mt-hero-title.mt-r {
	transition: opacity 1.4s var(--ease), transform 1.4s var(--ease), filter 1.4s var(--ease);
}

@media (prefers-reduced-motion: reduce) {
	html.js .mt-r,
	html.js .mt-r:not(.in) {
		opacity: 1;
		transform: none;
		filter: none;
		transition: none;
	}
}

/* ---- 09-materials.css ---- */
/* ==========================================================================
   Materials: the room around the food. Walnut paneling, menu paper, brick, a
   checkered tablecloth and a tufted booth, all generated (and seamless) in
   build/images.py. Sections opt in with one class each:
     mt-mat-wood | mt-mat-brick | mt-mat-leather | mt-mat-cloth
   A column whose content sits on paper carries mt-on-paper.
   Specificity stays at (0,3,x) like everything else: a colour the client picks on
   one widget in Elementor (0,4,0) still wins.
   ========================================================================== */

/* ---------- Section surfaces ---------- */

body .elementor-section.mt-mat-wood {
	background-color: #1c120c;
	background-image:
		radial-gradient(ellipse 70% 55% at 50% 0%, rgba(255, 190, 120, 0.13), transparent 70%),
		linear-gradient(180deg, rgba(18, 12, 9, 0.5), rgba(18, 12, 9, 0.66)),
		url("../img/tex-wood.jpg");
	background-size: auto, auto, 480px auto;
}

body .elementor-section.mt-mat-brick {
	background-color: #2a1410;
	background-image:
		radial-gradient(ellipse 55% 70% at 50% 0%, rgba(255, 196, 130, 0.2), transparent 72%),
		linear-gradient(180deg, rgba(18, 12, 9, 0.5), rgba(18, 12, 9, 0.68)),
		url("../img/tex-brick.jpg");
	background-size: auto, auto, 390px auto;
}

body .elementor-section.mt-mat-leather {
	background-color: #2a0809;
	background-image:
		radial-gradient(ellipse 80% 60% at 50% 30%, rgba(255, 170, 120, 0.1), transparent 70%),
		linear-gradient(180deg, rgba(18, 12, 9, 0.42), rgba(18, 12, 9, 0.58)),
		url("../img/tex-leather.jpg");
	background-size: auto, auto, 360px auto;
}

body .elementor-section.mt-mat-cloth {
	background-color: #2a0d0c;
	background-image:
		radial-gradient(ellipse 75% 90% at 50% 45%, rgba(18, 12, 9, 0.22), rgba(18, 12, 9, 0.74)),
		url("../img/tex-gingham.jpg");
	background-size: auto, 288px 288px;
}

/* A lit band sits under the sections around it. */
body .elementor-section.mt-mat-wood,
body .elementor-section.mt-mat-brick,
body .elementor-section.mt-mat-leather,
body .elementor-section.mt-mat-cloth {
	box-shadow: inset 0 28px 36px -26px rgba(0, 0, 0, 0.92), inset 0 -28px 36px -26px rgba(0, 0, 0, 0.92);
}

/* ---------- Paper (menu cards, notes, clippings, order slips) ---------- */

body .mt-on-paper > .elementor-widget-wrap,
.mt-paper {
	background-color: #efe4cc;
	background-image: url("../img/tex-paper.jpg");
	background-size: 420px auto;
	color: var(--paper-ink);
	box-shadow: 0 30px 40px -26px rgba(0, 0, 0, 0.95), 0 3px 8px rgba(0, 0, 0, 0.38), inset 0 0 60px rgba(140, 100, 50, 0.2);
}

body .mt-on-paper .elementor-widget-heading h2.elementor-heading-title,
body .mt-on-paper .elementor-widget-heading h3.elementor-heading-title {
	color: var(--paper-ink);
}

body .mt-on-paper .elementor-heading-title em {
	color: var(--paper-red);
}

body .mt-on-paper .elementor-widget-text-editor {
	color: #3b2f26;
}

body .mt-on-paper .mt-eyebrow .elementor-heading-title {
	color: var(--paper-red);
}

body .mt-on-paper .mt-btn-ghost .elementor-button {
	border-color: rgba(34, 26, 21, 0.55);
	color: var(--paper-ink);
}

body .mt-on-paper .mt-btn-ghost .elementor-button:hover {
	background: var(--paper-ink);
	border-color: var(--paper-ink);
	color: var(--bone);
}

body .mt-on-paper .mt-link .elementor-button {
	color: var(--paper-red);
}

body .mt-on-paper :focus-visible {
	outline-color: var(--paper-red);
}

/* ---------- Hero: light through the blinds, a lamp on the left ---------- */

body .elementor-section.mt-hero {
	background-image: radial-gradient(ellipse 55% 65% at 18% 38%, rgba(140, 60, 28, 0.22), transparent 72%);
}

body .elementor-section.mt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: repeating-linear-gradient(98deg, rgba(255, 214, 160, 0) 0 30px, rgba(255, 214, 160, 0.055) 30px 44px);
	-webkit-mask-image: radial-gradient(ellipse 48% 62% at 30% 26%, #000, transparent 74%);
	mask-image: radial-gradient(ellipse 48% 62% at 30% 26%, #000, transparent 74%);
}

/* The lamp glow (hero::after) breathes like a flame. */
body .elementor-section.mt-hero::after {
	animation: mt-candle 7s ease-in-out infinite;
}

@keyframes mt-candle {
	0%, 100% { opacity: 1; }
	18% { opacity: 0.86; }
	21% { opacity: 1; }
	47% { opacity: 0.92; }
	69% { opacity: 1; }
	71% { opacity: 0.8; }
	74% { opacity: 1; }
}

/* Cigar-room haze: two layers of smoke drifting opposite ways at different speeds.
   Screen blending drops the texture's black, so only the wisps show. Transform-only
   animation, so it stays on the compositor. */
body .elementor-section.mt-hero > .elementor-container::before,
body .elementor-section.mt-hero > .elementor-container::after {
	content: "";
	position: absolute;
	top: 6%;
	bottom: -6%;
	left: 0;
	pointer-events: none;
	background: url("../img/fx-smoke.jpg") 0 50% / 1800px 100% repeat-x;
	mix-blend-mode: screen;
	will-change: transform;
}

body .elementor-section.mt-hero > .elementor-container::after {
	z-index: 1;
	width: calc(100% + 1800px);
	opacity: 0.2;
	animation: mt-smoke-a 95s linear infinite;
}

body .elementor-section.mt-hero > .elementor-container::before {
	z-index: 2;
	width: calc(100% + 2600px);
	background-size: 2600px 100%;
	opacity: 0.11;
	animation: mt-smoke-b 160s linear infinite;
}

@keyframes mt-smoke-a {
	from { transform: translateX(0); }
	to { transform: translateX(-1800px); }
}

@keyframes mt-smoke-b {
	from { transform: translateX(-2600px) scaleY(-1); }
	to { transform: translateX(0) scaleY(-1); }
}

/* The pie, slowly pushed in on like a film's opening shot. */
body .elementor .mt-hero-img {
	overflow: hidden;
}

body .elementor .mt-hero-img img {
	transform-origin: 62% 55%;
	animation: mt-pushin 26s ease-in-out infinite alternate;
}

@keyframes mt-pushin {
	from { transform: scale(1); }
	to { transform: scale(1.08) translate(-1%, -0.6%); }
}

/* "Since 2011" seal over the photo's lower corner; only the ring turns. */
body .elementor .mt-hero-seal {
	position: absolute;
	z-index: 2;
	right: max(var(--gutter), calc((100vw - var(--container) - 160px) / 2 + var(--gutter)));
	bottom: clamp(40px, 9vh, 110px);
	width: clamp(124px, 10vw, 160px);
	margin: 0;
}

.mt-seal {
	position: relative;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 38%, #2a1c15, #0e0907 72%);
	box-shadow: 0 0 0 2px var(--gold), 0 0 0 6px rgba(18, 13, 11, 0.92), 0 0 0 7px rgba(201, 163, 92, 0.5), 0 26px 44px -12px rgba(0, 0, 0, 0.95);
	transform: rotate(-8deg);
}

.mt-seal::after {
	content: "";
	position: absolute;
	inset: 23%;
	border: 1px solid rgba(201, 163, 92, 0.45);
	border-radius: 50%;
}

.mt-seal__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	animation: mt-seal-spin 48s linear infinite;
}

.mt-seal__ring text {
	font-family: var(--f-cond);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.1em;
	fill: var(--gold-hi);
}

.mt-seal__mark {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 44%;
	height: auto;
	transform: translate(-50%, -54%);
}

@keyframes mt-seal-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 767px) {
	body .elementor .mt-hero-seal {
		display: none;
	}

	body .elementor-section.mt-hero > .elementor-container::before {
		content: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .elementor-section.mt-hero::after,
	body .elementor-section.mt-hero > .elementor-container::before,
	body .elementor-section.mt-hero > .elementor-container::after,
	body .elementor .mt-hero-img img,
	.mt-seal__ring {
		animation: none;
	}
}

/* ---------- Course tiles: menu cards on the tablecloth ---------- */

body .mt-cats .mt-cat > .elementor-widget-wrap {
	outline: 1px solid rgba(34, 26, 21, 0.28);
	outline-offset: -7px;
}

body .mt-cats .mt-cat:nth-child(odd) > .elementor-widget-wrap {
	transform: rotate(-0.6deg);
}

body .mt-cats .mt-cat:nth-child(even) > .elementor-widget-wrap {
	transform: rotate(0.5deg);
}

body .mt-cats .mt-cat:hover > .elementor-widget-wrap {
	transform: translateY(-5px) rotate(0deg);
	box-shadow: 0 40px 50px -26px rgba(0, 0, 0, 0.95), 0 6px 14px rgba(0, 0, 0, 0.4), inset 0 0 60px rgba(140, 100, 50, 0.2);
}

body .elementor .mt-cat-img img {
	filter: none;
	box-shadow: 0 0 0 1px rgba(34, 26, 21, 0.4);
}

body .mt-cat:hover .mt-cat-img img {
	filter: saturate(1.08);
}

body .mt-on-paper .mt-cat-title h2.elementor-heading-title {
	color: var(--paper-ink);
}

body .mt-on-paper .mt-cat-title h2.elementor-heading-title::after {
	color: var(--paper-red);
}

body .mt-on-paper .mt-cat-sub .elementor-heading-title {
	color: var(--paper-red);
}

/* ---------- Story: paper panel, a framed sign on the paneling ---------- */

body .mt-story3 .mt-story3-copy > .elementor-widget-wrap {
	box-shadow: inset 0 0 90px rgba(140, 100, 50, 0.28);
}

body .mt-story3 .mt-story3-quote > .elementor-widget-wrap {
	background-color: #1c120c;
	background-image:
		radial-gradient(ellipse 80% 55% at 50% 0%, rgba(255, 190, 120, 0.2), transparent 70%),
		linear-gradient(180deg, rgba(18, 12, 9, 0.38), rgba(18, 12, 9, 0.6)),
		url("../img/tex-wood.jpg");
	background-size: auto, auto, 480px auto;
	border-left: 0;
}

/* The brass-framed board the quote is written on. */
body .mt-story3 .mt-story3-quote > .elementor-widget-wrap::before {
	inset: clamp(26px, 3vw, 44px);
	border: 3px solid #b8914f;
	background: radial-gradient(ellipse at 50% 40%, #241a15, #110c0a 80%);
	box-shadow: 0 0 0 1px #4a3418, inset 0 0 0 1px #e2c07c, inset 0 0 50px rgba(0, 0, 0, 0.75), 0 24px 36px -16px rgba(0, 0, 0, 0.9);
}

/* ---------- The Usual Suspects: case files on the booth ---------- */

body .elementor-section.mt-featured .mt-cards {
	counter-reset: mtfile;
	padding-top: 16px;
}

body .elementor-section.mt-featured .mt-card {
	counter-increment: mtfile;
	overflow: visible;
	padding: 16px 16px 0;
	border: 0;
	border-radius: 2px;
	background-color: #efe4cc;
	background-image: url("../img/tex-paper.jpg");
	background-size: 420px auto;
	box-shadow: 0 30px 42px -24px rgba(0, 0, 0, 0.95), 0 4px 10px rgba(0, 0, 0, 0.4), inset 0 0 60px rgba(140, 100, 50, 0.22);
}

body .elementor-section.mt-featured .mt-card:hover {
	transform: translateY(-6px) rotate(-0.4deg);
	box-shadow: 0 44px 54px -26px rgba(0, 0, 0, 0.95), 0 6px 14px rgba(0, 0, 0, 0.4), inset 0 0 60px rgba(140, 100, 50, 0.22);
}

/* Manila tab with a typed file number */
body .elementor-section.mt-featured .mt-card::before {
	content: "File N\00BA  " counter(mtfile, decimal-leading-zero);
	position: absolute;
	top: -15px;
	right: 22px;
	z-index: 3;
	padding: 5px 14px 3px;
	border-radius: 4px 4px 0 0;
	background: #e2cf9f;
	box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.25);
	font-family: var(--f-type);
	font-size: 0.82rem;
	color: var(--paper-ink);
}

/* Paper clip holding the photo on */
body .elementor-section.mt-featured .mt-card::after {
	content: "";
	position: absolute;
	top: -12px;
	left: 30px;
	z-index: 3;
	width: 16px;
	height: 52px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 52'%3E%3Cpath d='M5 44V9a4 4 0 0 1 8 0v35a6 6 0 0 1-12 0V14' fill='none' stroke='%23a9a39a' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / contain;
	filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.45));
	transform: rotate(6deg);
	pointer-events: none;
}

/* Photo as a print: white border, slightly askew */
body .elementor-section.mt-featured .mt-card__media {
	border: 7px solid #faf6ec;
	border-bottom-width: 7px;
	border-radius: 1px;
	box-shadow: 0 8px 16px -6px rgba(0, 0, 0, 0.45);
	transform: rotate(-1deg);
}

body .elementor-section.mt-featured .mt-card:nth-child(even) .mt-card__media {
	transform: rotate(0.8deg);
}

body .elementor-section.mt-featured .mt-card__media::after {
	content: none;
}

/* Badges become rubber stamps */
body .elementor-section.mt-featured .mt-card__media .mt-badge {
	top: 10px;
	left: auto;
	right: 10px;
	padding: 4px 9px;
	border: 2px solid currentColor;
	border-radius: 3px;
	background: rgba(250, 246, 236, 0.9);
	color: var(--paper-red);
	font-weight: 600;
	letter-spacing: 0.18em;
	transform: rotate(-6deg);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

body .elementor-section.mt-featured .mt-card__media .mt-badge + .mt-badge {
	top: 44px;
}

body .elementor-section.mt-featured .mt-badge--veggie {
	color: #2f6b2a;
}

body .elementor-section.mt-featured .mt-badge--family {
	color: #7a5a12;
}

body .elementor-section.mt-featured .mt-card__body {
	padding: 22px 8px 24px;
}

body .elementor-section.mt-featured .mt-card__name a {
	color: var(--paper-ink);
}

body .elementor-section.mt-featured .mt-card__name a:hover {
	color: var(--paper-red);
}

body .elementor-section.mt-featured .mt-card__top .mt-price {
	color: var(--paper-red);
}

body .elementor-section.mt-featured .mt-card__desc {
	color: var(--paper-muted);
}

body .elementor-section.mt-featured .mt-card__order {
	color: var(--paper-red);
}

body .elementor-section.mt-featured .mt-card__order:hover {
	color: var(--paper-ink);
}

body .elementor-section.mt-featured .mt-card__placeholder {
	background: #e3d6b8;
	color: rgba(34, 26, 21, 0.5);
}

/* ---------- Catering band + CTA band: tablecloth hems ---------- */

body .elementor-section.mt-cater::before {
	background:
		linear-gradient(90deg, rgba(118, 18, 18, 0.95) 0%, rgba(104, 16, 16, 0.9) 40%, rgba(70, 12, 12, 0.7) 70%, rgba(36, 10, 9, 0.74) 100%),
		linear-gradient(0deg, rgba(18, 12, 9, 0.45) 0%, rgba(18, 12, 9, 0) 45%);
}

body .elementor-section.mt-cater::after,
body .elementor-section.mt-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: url("../img/tex-gingham.jpg") 0 0 / 96px 96px;
	-webkit-mask-image: linear-gradient(180deg, #000 0 14px, transparent 14px calc(100% - 14px), #000 calc(100% - 14px));
	mask-image: linear-gradient(180deg, #000 0 14px, transparent 14px calc(100% - 14px), #000 calc(100% - 14px));
}

body .elementor-section.mt-cta {
	isolation: isolate;
}

/* ---------- Word on the Street: notes pinned to the wall ---------- */

body .elementor-section.mt-words-head {
	padding-bottom: 10px;
}

body .elementor-section.mt-words {
	padding-top: 44px;
	box-shadow: inset 0 -28px 36px -26px rgba(0, 0, 0, 0.92);
}

body .elementor-section.mt-words-head {
	box-shadow: inset 0 28px 36px -26px rgba(0, 0, 0, 0.92);
}

/* Head and notes are two sections on one wall: the notes carry on the head's shading
   (no second lamp glow) so there's no seam where they meet. */
body .elementor-section.mt-words.mt-mat-wood {
	background-image: linear-gradient(180deg, rgba(18, 12, 9, 0.66), rgba(18, 12, 9, 0.7)), url("../img/tex-wood.jpg");
	background-size: auto, 480px auto;
}

body .elementor-section.mt-words.mt-mat-brick {
	background-image: linear-gradient(180deg, rgba(18, 12, 9, 0.68), rgba(18, 12, 9, 0.72)), url("../img/tex-brick.jpg");
	background-size: auto, 390px auto;
}

body .mt-words-head .mt-link {
	margin-top: 6px;
}

/* Notes keep their own height instead of stretching to the tallest. */
body .elementor-section.mt-words > .elementor-container {
	align-items: flex-start;
}

body .mt-words .mt-note {
	padding: 0 clamp(10px, 1.6vw, 26px);
}

body .mt-words .mt-note > .elementor-widget-wrap {
	position: relative;
	align-content: flex-start;
	padding: 46px clamp(24px, 2.4vw, 36px) 30px;
	transform: rotate(-1.4deg);
}

body .mt-words .mt-note:nth-child(2) > .elementor-widget-wrap {
	transform: rotate(1deg) translateY(18px);
}

body .mt-words .mt-note:nth-child(3) > .elementor-widget-wrap {
	transform: rotate(-0.5deg);
}

/* Push pin */
body .mt-words .mt-note > .elementor-widget-wrap::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 50%;
	width: 20px;
	height: 20px;
	margin-left: -10px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 32%, #ff8a7a 0 12%, #c42a2a 38%, #6e1010 100%);
	box-shadow: 2px 5px 6px rgba(0, 0, 0, 0.45);
}

body .elementor .mt-note-text p {
	position: relative;
	max-width: none;
	font-size: 1.12rem;
	font-style: italic;
	line-height: 1.55;
	color: #3b2f26;
}

body .elementor .mt-note-text p::before {
	content: "\201C";
	position: absolute;
	top: -0.42em;
	left: -0.36em;
	font-family: var(--f-display);
	font-size: 3.2rem;
	font-style: normal;
	line-height: 1;
	color: rgba(155, 28, 28, 0.3);
}

body .elementor .mt-note .elementor-widget-text-editor:not(:last-child) {
	margin-bottom: 20px;
}

body .elementor .mt-note .mt-note-name:not(:last-child) {
	margin-bottom: 4px;
}

body .elementor .mt-note-name .elementor-heading-title {
	font-family: var(--f-type);
	font-size: 1.15rem;
	color: var(--paper-ink);
}

body .elementor .mt-note-src .elementor-heading-title {
	font-family: var(--f-cond);
	font-size: 0.68rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--paper-red);
}

@media (max-width: 767px) {
	body .mt-words .mt-note {
		padding: 0;
		margin-bottom: 34px;
	}

	body .mt-words .mt-note:nth-child(2) > .elementor-widget-wrap {
		transform: rotate(1deg);
	}
}

/* ---------- Visit band: calling card, letterboard, neon on the brick ---------- */

body .mt-visitband .elementor-column {
	padding: 0 clamp(10px, 1.6vw, 26px);
}

body .mt-visitband .mt-vb-visit > .elementor-widget-wrap {
	padding: clamp(30px, 3vw, 44px);
	outline: 1px solid rgba(34, 26, 21, 0.3);
	outline-offset: -10px;
	transform: rotate(-1.2deg);
}

body .mt-on-paper .mt-band-title h2.elementor-heading-title {
	color: var(--paper-ink);
}

body .mt-on-paper .mt-band-title h2.elementor-heading-title::after {
	background: var(--paper-red);
}

body .mt-on-paper .mt-addr__line {
	color: var(--paper-ink);
}

body .mt-on-paper .mt-addr__line .ico {
	color: var(--paper-red);
}

body .mt-on-paper .mt-addr__line:hover {
	color: var(--paper-red);
}

/* Felt letterboard in a wood frame */
body .mt-visitband .mt-vb-hours > .elementor-widget-wrap {
	padding: clamp(24px, 2.6vw, 36px);
	border: 14px solid transparent;
	border-image: url("../img/tex-wood.jpg") 80 round;
	background-color: #141212;
	background-image: repeating-linear-gradient(180deg, #1e1b1b 0 3px, #0f0d0d 3px 6px);
	background-clip: padding-box;
	box-shadow: 0 30px 40px -24px rgba(0, 0, 0, 0.95), inset 0 0 22px rgba(0, 0, 0, 0.85);
}

body .mt-vb-hours .mt-band-title h2.elementor-heading-title {
	justify-content: center;
	color: #f6f2ea;
	letter-spacing: 0.34em;
}

body .mt-vb-hours .mt-band-title h2.elementor-heading-title::after {
	content: none;
}

body .mt-vb-hours .mt-hourtable {
	max-width: none;
}

body .mt-vb-hours .mt-hourtable th,
body .mt-vb-hours .mt-hourtable td {
	padding: 9px 0;
	border-bottom: 0;
	font-family: var(--f-cond);
	font-size: 0.94rem;
	font-weight: 500;
	font-style: normal;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #f6f2ea;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);
}

body .mt-vb-hours .mt-hourtable tr.is-closed td {
	color: #a59c8f;
	font-style: normal;
}

body .mt-vb-hours .mt-hourtable tr.is-today th,
body .mt-vb-hours .mt-hourtable tr.is-today td {
	color: #ffd27a;
}

/* Today is lit in yellow letters; the chip doesn't fit a letterboard row. */
body .mt-vb-hours .mt-hourtable tr.is-today th::after {
	content: none;
}

body .mt-vb-hours .mt-hours-note {
	text-align: center;
	font-family: var(--f-cond);
	font-style: normal;
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #c9c1b4;
}

/* Neon mounted straight on the brick, glowing onto it */
body .mt-visitband .mt-vb-sign > .elementor-widget-wrap {
	background: none;
	border: 0;
	box-shadow: none;
}

/* The red light the sign throws on the wall. It lives on the widget so it goes dark
   with the tubes. isolation keeps the z-index:-1 glow above the brick. */
body .elementor .mt-neon {
	isolation: isolate;
}

body .elementor .mt-neon::before {
	content: "";
	position: absolute;
	inset: -38% -22%;
	z-index: -1;
	pointer-events: none;
	background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(255, 60, 50, 0.34), rgba(255, 60, 50, 0.08) 55%, transparent 72%);
	transition: opacity 0.25s ease;
}

/* ---------- Neon tubes (site.js splits the sign into words) ----------
   Dark glass until it scrolls into view, then each word powers on with a stutter,
   the sign hums, and every so often one tired tube flickers. No JS, the editor or
   reduced motion: it simply stays lit. */

body .elementor .mt-neon.is-split .elementor-heading-title {
	animation: none;
}

body .elementor .mt-neon.is-split .mt-neon__w {
	display: inline-block;
	filter: brightness(0.2) saturate(0.45);
}

body .elementor .mt-neon.is-split::before {
	opacity: 0.12;
}

body .elementor .mt-neon.is-split .elementor-heading-title::after {
	filter: brightness(0.35);
	transition: filter 0.3s ease;
}

body .elementor .mt-neon.is-on .mt-neon__w {
	animation: mt-tube-on 1.5s linear both;
	animation-delay: calc(var(--i, 0) * 0.4s);
}

body .elementor .mt-neon.is-on::before {
	opacity: 0.7;
	transition-delay: 0.5s;
}

body .elementor .mt-neon.is-lit .mt-neon__w {
	filter: none;
	animation: mt-tube-hum 3.8s ease-in-out infinite;
	animation-delay: calc(var(--i, 0) * -0.9s);
}

body .elementor .mt-neon.is-lit .mt-neon__w.is-flicker {
	animation: mt-tube-flicker 0.95s linear both;
}

body .elementor .mt-neon.is-lit::before {
	opacity: 1;
	animation: mt-tube-hum 3.8s ease-in-out infinite;
}

body .elementor .mt-neon.is-lit .elementor-heading-title::after {
	filter: none;
}

/* The flash is the wall going dark with the tube. */
body .elementor .mt-neon.is-lit.is-stutter::before {
	opacity: 0.55;
	transition: opacity 0.05s linear;
}

@keyframes mt-tube-on {
	0%, 7%, 12%, 21%, 31%, 37% { filter: brightness(0.2) saturate(0.45); }
	8%, 11%, 22%, 29%, 44%, 100% { filter: brightness(1) saturate(1); }
	40% { filter: brightness(0.55) saturate(0.8); }
}

@keyframes mt-tube-hum {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(0.9); }
}

@keyframes mt-tube-flicker {
	0%, 100% { filter: brightness(1) saturate(1); }
	6%, 15% { filter: brightness(0.22) saturate(0.45); }
	10%, 20% { filter: brightness(1) saturate(1); }
	34% { filter: brightness(0.5) saturate(0.7); }
	40% { filter: brightness(1) saturate(1); }
	52%, 58% { filter: brightness(0.2) saturate(0.45); }
	55%, 64% { filter: brightness(1) saturate(1); }
}

@media (max-width: 1024px) {
	body .mt-visitband .mt-vb-visit > .elementor-widget-wrap,
	body .mt-visitband .mt-vb-hours > .elementor-widget-wrap {
		margin-bottom: 30px;
	}
}

@media (max-width: 767px) {
	body .mt-visitband .elementor-column {
		padding: 0;
	}

	body .mt-visitband .mt-vb-visit > .elementor-widget-wrap {
		padding: 30px 26px;
		margin-bottom: 30px;
	}

	body .mt-visitband .mt-vb-hours > .elementor-widget-wrap {
		padding: 24px 20px;
	}
}

/* ---------- Steakhouse band: a clipping from the family paper ---------- */

body .elementor-section.mt-family::before {
	content: none;
}

body .mt-family .mt-family-col > .elementor-widget-wrap {
	max-width: 780px;
	margin-inline: auto;
	padding: clamp(30px, 4vw, 52px) clamp(24px, 4.5vw, 64px) clamp(34px, 4vw, 52px);
	background-color: #e8dfcb;
	transform: rotate(-0.8deg);
	clip-path: polygon(0 1.2%, 6% 0, 14% 0.9%, 27% 0.2%, 41% 1%, 55% 0, 70% 0.8%, 84% 0.1%, 100% 1%, 99.4% 22%, 100% 47%, 99.3% 73%, 100% 99%, 87% 100%, 72% 99.2%, 58% 100%, 43% 99.1%, 29% 100%, 15% 99.3%, 0 100%, 0.6% 76%, 0 51%, 0.7% 26%);
}

body .mt-family .mt-family-col {
	filter: drop-shadow(0 26px 22px rgba(0, 0, 0, 0.65));
}

/* Masthead */
body .mt-family .mt-family-col > .elementor-widget-wrap::before {
	content: "La Famiglia Gazette";
	display: block;
	width: 100%;
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 4px double var(--paper-ink);
	font-family: var(--f-display);
	font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem);
	font-weight: 900;
	text-align: center;
	color: var(--paper-ink);
	letter-spacing: 0.01em;
}

body .mt-family .mt-on-paper .mt-eyebrow .elementor-heading-title {
	color: var(--paper-ink);
	font-family: var(--f-type);
	letter-spacing: 0.18em;
}

body .mt-family .mt-on-paper .elementor-widget-heading h2.elementor-heading-title {
	font-weight: 900;
}

body .mt-family .mt-on-paper .elementor-widget-text-editor p {
	color: #3b2f26;
}

/* ---------- Our Story: ledger, plaques ---------- */

body .mt-timeline-sec .mt-timeline {
	padding: clamp(28px, 4vw, 52px) clamp(20px, 4vw, 56px);
	background-color: #efe4cc;
	background-image: repeating-linear-gradient(180deg, transparent 0 35px, rgba(60, 90, 140, 0.16) 35px 36px), url("../img/tex-paper.jpg");
	background-size: auto, 420px auto;
	box-shadow: 0 30px 40px -26px rgba(0, 0, 0, 0.95), 0 3px 8px rgba(0, 0, 0, 0.38), inset 0 0 60px rgba(140, 100, 50, 0.22);
}

body .mt-timeline-sec .mt-timeline::before {
	left: calc(clamp(20px, 4vw, 56px) + 118px);
	background: rgba(155, 28, 28, 0.45);
}

/* The rule is drawn on the <ol> (moved by its padding); the dots sit on each <li>. */
body .mt-timeline-sec .mt-timeline li::before {
	background: #efe4cc;
	border-color: var(--paper-red);
	box-shadow: 0 0 0 4px #efe4cc;
}

body .mt-timeline-sec .mt-timeline strong {
	font-family: var(--f-type);
	font-weight: 400;
	color: var(--paper-red);
}

body .mt-timeline-sec .mt-timeline span {
	color: var(--paper-ink);
}

@media (max-width: 600px) {
	body .mt-timeline-sec .mt-timeline::before {
		left: calc(clamp(20px, 4vw, 56px) + 6px);
	}
}

body .mt-values .mt-on-paper > .elementor-widget-wrap {
	border: 0;
	border-radius: 2px;
	outline: 1px solid rgba(34, 26, 21, 0.28);
	outline-offset: -8px;
}

body .mt-on-paper .mt-numeral .elementor-heading-title {
	color: var(--paper-red);
}

/* ---------- Menu: the paper menu on the tablecloth ---------- */

body .mt-menu-sec .mt-course {
	margin-top: clamp(36px, 5vw, 64px);
	padding: clamp(36px, 4.5vw, 64px) clamp(22px, 4vw, 60px);
	background-color: #efe4cc;
	background-image: url("../img/tex-paper.jpg");
	background-size: 420px auto;
	color: var(--paper-ink);
	box-shadow: 0 40px 60px -36px rgba(0, 0, 0, 0.95), 0 4px 10px rgba(0, 0, 0, 0.35), inset 0 0 0 10px transparent, inset 0 0 0 11px rgba(155, 28, 28, 0.32), inset 0 0 70px rgba(140, 100, 50, 0.22);
}

body .mt-menu-sec .mt-course:first-of-type {
	margin-top: 10px;
}

body .mt-menu-sec .mt-course__num,
body .mt-menu-sec .mt-course__head::after {
	color: var(--paper-red);
}

body .mt-menu-sec .mt-course__title {
	color: var(--paper-ink);
}

body .mt-menu-sec .mt-course__desc {
	color: var(--paper-muted);
}

body .mt-menu-sec .mt-dish-row {
	border-bottom-color: rgba(34, 26, 21, 0.16);
}

body .mt-menu-sec .mt-dish-row__name {
	color: var(--paper-ink);
}

body .mt-menu-sec .mt-dish-row.is-featured .mt-dish-row__name {
	color: var(--paper-red);
}

body .mt-menu-sec .mt-dish-row__dots {
	border-bottom-color: rgba(34, 26, 21, 0.32);
}

body .mt-menu-sec .mt-price {
	color: var(--paper-red);
}

body .mt-menu-sec .mt-dish-row__desc {
	color: var(--paper-muted);
}

body .mt-menu-sec .mt-dish-row__note {
	color: #7a5a12;
}

body .mt-menu-sec .mt-dish-row__img {
	border: 4px solid #faf6ec;
	box-shadow: 0 6px 12px -4px rgba(0, 0, 0, 0.4);
}

body .mt-menu-sec .mt-course .mt-badge {
	border: 1.5px solid currentColor;
	background: transparent;
	color: var(--paper-red);
}

body .mt-menu-sec .mt-course .mt-badge--veggie {
	color: #2f6b2a;
}

body .mt-menu-sec .mt-course .mt-badge--family {
	color: #7a5a12;
}

body .mt-menu-sec .mt-course .mt-badge--premium {
	background: var(--paper-red);
	border-color: var(--paper-red);
	color: #fff;
}

body .mt-menu-sec .mt-dish-row:target {
	animation: none;
	background: rgba(201, 163, 92, 0.18);
}

body .mt-menu-sec .mt-menu-noresults,
body .mt-menu-sec .mt-menu-empty {
	color: var(--bone);
	text-shadow: 0 2px 8px #000;
}

/* ---------- Forms: an order slip ---------- */

body .mt-mat-cloth .mt-formcard,
body .mt-mat-brick .mt-formcard {
	background-color: #efe4cc;
	background-image: url("../img/tex-paper.jpg");
	background-size: 420px auto;
	border: 0;
	border-radius: 2px;
	box-shadow: 0 40px 60px -34px rgba(0, 0, 0, 0.95), 0 4px 10px rgba(0, 0, 0, 0.38), inset 0 0 70px rgba(140, 100, 50, 0.2);
	color: var(--paper-ink);
	color-scheme: light;
}

body .mt-mat-cloth .mt-formcard::before,
body .mt-mat-brick .mt-formcard::before {
	top: 0;
	left: 0;
	right: 0;
	width: auto;
	height: 6px;
	background: url("../img/tex-gingham.jpg") 0 0 / 72px 72px;
}

body .mt-mat-cloth .mt-form label,
body .mt-mat-brick .mt-form label {
	color: var(--paper-ink);
}

body .mt-mat-cloth .mt-req,
body .mt-mat-brick .mt-req {
	color: var(--paper-red);
}

body .mt-mat-cloth .mt-opt,
body .mt-mat-brick .mt-opt,
body .mt-mat-cloth .mt-form__fine,
body .mt-mat-brick .mt-form__fine {
	color: var(--paper-muted);
}

body .mt-mat-cloth .mt-form input,
body .mt-mat-cloth .mt-form select,
body .mt-mat-cloth .mt-form textarea,
body .mt-mat-brick .mt-form input,
body .mt-mat-brick .mt-form select,
body .mt-mat-brick .mt-form textarea {
	border: 1px solid rgba(34, 26, 21, 0.38);
	background: rgba(255, 252, 244, 0.82);
	color: var(--paper-ink);
	color-scheme: light;
}

body .mt-mat-cloth .mt-form input:focus-visible,
body .mt-mat-cloth .mt-form select:focus-visible,
body .mt-mat-cloth .mt-form textarea:focus-visible,
body .mt-mat-brick .mt-form input:focus-visible,
body .mt-mat-brick .mt-form select:focus-visible,
body .mt-mat-brick .mt-form textarea:focus-visible {
	outline: 2px solid var(--paper-red);
	border-color: var(--paper-red);
	background: #fffdf7;
}

body .mt-mat-cloth .mt-form ::placeholder,
body .mt-mat-brick .mt-form ::placeholder {
	color: #8a7a68;
}

body .mt-mat-cloth .mt-form-ok,
body .mt-mat-brick .mt-form-ok {
	color: var(--paper-ink);
}

body .mt-mat-cloth .mt-form-ok p,
body .mt-mat-brick .mt-form-ok p {
	color: #3b2f26;
}

body .mt-mat-cloth .mt-form-err,
body .mt-mat-brick .mt-form-err {
	color: var(--paper-red);
}

/* Copy that sits straight on a texture gets a shadow to stay crisp. */
body .elementor-section.mt-mat-cloth .elementor-widget-text-editor,
body .elementor-section.mt-mat-brick .elementor-widget-text-editor,
body .elementor-section.mt-mat-wood .elementor-widget-text-editor,
body .elementor-section.mt-mat-leather .elementor-widget-text-editor {
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.85);
}

body .elementor-section .mt-on-paper .elementor-widget-text-editor {
	text-shadow: none;
}

/* ---------- Copy cards beside the forms (Catering, Visit) ---------- */

body .mt-split .elementor-column.mt-catering-copy,
body .mt-split .elementor-column.mt-contact-copy {
	padding-right: clamp(0px, 3vw, 48px);
}

body .mt-split .elementor-column.mt-catering-copy > .elementor-widget-wrap,
body .mt-split .elementor-column.mt-contact-copy > .elementor-widget-wrap {
	padding: clamp(28px, 3vw, 44px);
	outline: 1px solid rgba(34, 26, 21, 0.28);
	outline-offset: -10px;
}

body .mt-on-paper .mt-iconlist .elementor-icon-list-text,
body .mt-on-paper .mt-iconlist .elementor-icon-list-item {
	color: var(--paper-ink);
}

body .mt-on-paper .mt-iconlist .elementor-icon-list-icon i,
body .mt-on-paper .mt-iconlist .elementor-icon-list-icon svg {
	color: var(--paper-red);
	fill: var(--paper-red);
}

body .mt-on-paper .mt-iconlist .elementor-icon-list-icon .ico {
	fill: none;
}

body .mt-on-paper .mt-button--ghost {
	border-color: rgba(34, 26, 21, 0.55);
	color: var(--paper-ink);
}

body .mt-on-paper .mt-button--ghost:hover {
	background: var(--paper-ink);
	border-color: var(--paper-ink);
	color: var(--bone);
}

body .mt-on-paper .mt-hourtable th {
	color: var(--paper-ink);
}

body .mt-on-paper .mt-hourtable td {
	color: #3b2f26;
}

body .mt-on-paper .mt-hourtable th,
body .mt-on-paper .mt-hourtable td {
	border-bottom-color: rgba(34, 26, 21, 0.24);
}

body .mt-on-paper .mt-hourtable tr.is-closed td,
body .mt-on-paper .mt-hours-note {
	color: var(--paper-muted);
}

body .mt-on-paper .mt-hourtable tr.is-today th,
body .mt-on-paper .mt-hourtable tr.is-today td {
	color: var(--paper-red);
}

body .mt-on-paper .mt-hourtable tr.is-today th::after {
	background: var(--paper-red);
	color: #fff;
}

@media (max-width: 767px) {
	body .mt-split .elementor-column.mt-catering-copy,
	body .mt-split .elementor-column.mt-contact-copy {
		padding-right: 0;
		margin-bottom: 36px;
	}

	body .mt-split .elementor-column.mt-catering-copy > .elementor-widget-wrap,
	body .mt-split .elementor-column.mt-contact-copy > .elementor-widget-wrap {
		padding: 28px 22px;
	}
}

/* ---------- Footer: walnut ---------- */

.mt-footer {
	background-color: #0e0907;
	background-image: linear-gradient(180deg, rgba(12, 8, 6, 0.86), rgba(12, 8, 6, 0.94)), url("../img/tex-wood.jpg");
	background-size: auto, 480px auto;
}

/* ---- 10-wide.css ---- */
/* ==========================================================================
   Wide screens: the container and type grow in steps so a 27" display or the TV in
   the waiting room doesn't show a small page floating in a sea of black. Loaded last.
   ========================================================================== */

@media (min-width: 1600px) {
	:root {
		--container: 1360px;
	}

	html {
		font-size: 106.25%;
	}
}

@media (min-width: 2000px) {
	:root {
		--container: 1560px;
		--section-y: 170px;
	}

	html {
		font-size: 118.75%;
	}
}

@media (min-width: 2400px) {
	:root {
		--container: 1760px;
		--section-y: 200px;
	}

	html {
		font-size: 131.25%;
	}
}

@media (min-width: 2800px) {
	:root {
		--container: 1960px;
	}

	html {
		font-size: 150%;
	}
}
