/* ==========================================================================
   Exquisite Catering — section components
   White-led, with black bands and fine brass detailing (master plan §7).
   EB Garamond (menu-card serif) + Albert Sans. Strict 12-column grid.
   ========================================================================== */

:root {
	--exq-white: #ffffff;
	--exq-linen: #f3f2ef;
	--exq-ink: #1e1b18;
	--exq-ink-2: #4a453f;
	--exq-stone: #6f6861;
	--exq-line: #e3dfd8;
	--exq-gold: #c6a04e;
	--exq-gold-soft: #d9bd7e;
	--exq-brass: #8c6a22;
	--exq-dark: #1e1b18;
	--exq-dark-2: #2a2622;
	--exq-dark-line: #3d3833;
	--exq-error: #a23b2a;

	--exq-serif: "EB Garamond", "Iowan Old Style", "Palatino Linotype", Garamond, Georgia, serif;
	--exq-sans: "Albert Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--exq-max: 1280px;
	--exq-gutter: clamp(20px, 4vw, 48px);
	--exq-gap: clamp(16px, 2.2vw, 32px);
	--exq-space: clamp(72px, 9vw, 128px);
	--exq-header-h: 88px;
	--exq-radius: 2px;
}

/* ---------- Elementor containers that hold a section: no padding, no gaps ---------- */
.e-con.exq-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--widgets-spacing: 0px;
	--margin-top: 0px;
	--margin-bottom: 0px;
	padding: 0;
	gap: 0;
}
.e-con.exq-con > .elementor-widget { width: 100%; max-width: 100%; margin: 0; }

/* ---------- Layout ---------- */
.exq-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--exq-max);
	margin-inline: auto;
	padding-inline: var(--exq-gutter);
}
.exq-sec {
	box-sizing: border-box;
	padding-block: var(--exq-space);
	background: var(--exq-white);
	color: var(--exq-ink);
}
.exq-sec--linen { background: var(--exq-linen); }
.exq-sec--dark { background: var(--exq-dark); color: #f4f1ec; }

/* Two sections of the same background in a row: close the gap and draw a hairline. */
.exq-sec--white + .exq-sec--white,
.exq-sec--linen + .exq-sec--linen,
.e-con:has(.exq-sec--white) + .e-con:has(.exq-sec--white) .exq-sec--white,
.e-con:has(.exq-sec--linen) + .e-con:has(.exq-sec--linen) .exq-sec--linen {
	padding-top: 0;
}
.exq-sec--white + .exq-sec--white > .exq-wrap,
.exq-sec--linen + .exq-sec--linen > .exq-wrap,
.e-con:has(.exq-sec--white) + .e-con:has(.exq-sec--white) .exq-sec--white > .exq-wrap,
.e-con:has(.exq-sec--linen) + .e-con:has(.exq-sec--linen) .exq-sec--linen > .exq-wrap {
	border-top: 1px solid var(--exq-line);
	padding-top: var(--exq-space);
}
/* A white section straight after a page header sits closer to it. */
.exq-phead + .exq-sec--white,
.e-con:has(.exq-phead) + .e-con .exq-sec--white { padding-top: clamp(24px, 3vw, 40px); }

.exq-sec *,
.exq-hero *,
.exq-phead * { box-sizing: border-box; }

/* ---------- Type ---------- */
.exq-h2 {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(2.1rem, 3.5vw, 3.25rem);
	line-height: 1.08;
	letter-spacing: -0.012em;
	margin: 0 0 0.45em;
	color: inherit;
	text-wrap: balance;
	font-variant-numeric: oldstyle-nums;
}
.exq-h3 {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(1.5rem, 2.2vw, 1.875rem);
	line-height: 1.15;
	margin: 0 0 0.6em;
	color: inherit;
}
.exq-lead {
	font-family: var(--exq-sans);
	font-size: clamp(1.0625rem, 1.3vw, 1.1875rem);
	line-height: 1.6;
	color: var(--exq-ink-2);
	margin: 0;
	max-width: 38em;
	text-wrap: pretty;
}
.exq-sec--dark .exq-lead { color: #cfc8bf; }
.exq-head { max-width: 46rem; margin-bottom: clamp(40px, 5vw, 64px); }
.exq-head .exq-h2:last-child { margin-bottom: 0; }
.exq-prose { font-size: 1.0625rem; line-height: 1.7; color: var(--exq-ink-2); }
.exq-prose > :first-child { margin-top: 0; }
.exq-prose > :last-child { margin-bottom: 0; }
.exq-prose p { margin: 0 0 1em; }
.exq-prose a { color: var(--exq-brass); text-underline-offset: 3px; }
.exq-sec--dark .exq-prose { color: #cfc8bf; }
.exq-empty { color: var(--exq-stone); font-size: 1rem; }
.exq-after { margin-top: clamp(32px, 4vw, 48px); }

/* ---------- Buttons ---------- */
.exq-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.exq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 28px;
	font-family: var(--exq-sans);
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1;
	letter-spacing: 0.01em;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--exq-radius);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	white-space: nowrap;
}
.exq-btn--primary { background: var(--exq-ink); color: #fff; }
.exq-btn--primary:hover { background: #3a342e; color: #fff; }
.exq-btn--secondary { background: transparent; color: var(--exq-ink); border-color: var(--exq-ink); }
.exq-btn--secondary:hover { background: var(--exq-ink); color: #fff; }
.exq-btn--gold { background: var(--exq-gold); color: var(--exq-ink); }
.exq-btn--gold:hover { background: var(--exq-gold-soft); color: var(--exq-ink); }
.exq-btn--light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.45); }
.exq-btn--light:hover { border-color: #fff; color: #fff; }
.exq-btn--link {
	min-height: 0;
	padding: 0;
	border: 0;
	color: var(--exq-brass);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}
.exq-btn--link:hover { color: var(--exq-ink); }
.exq-sec--dark .exq-btn--link { color: var(--exq-gold); }
.exq-sec--dark .exq-btn--secondary { color: #fff; border-color: rgba(255, 255, 255, 0.45); }
.exq-btn--small { min-height: 44px; padding: 0 20px; font-size: 0.875rem; }
.exq-btn:disabled, .exq-btn[aria-disabled="true"] { opacity: 0.4; cursor: not-allowed; }

.exq-hero a:focus-visible,
.exq-sec a:focus-visible,
.exq-sec button:focus-visible,
.exq-sec summary:focus-visible,
.exq-sec input:focus-visible,
.exq-sec select:focus-visible,
.exq-sec textarea:focus-visible,
.exq-qb :focus-visible {
	outline: 2px solid var(--exq-gold);
	outline-offset: 3px;
}

/* ---------- Icons ---------- */
.exq-icon { flex: none; display: inline-block; vertical-align: middle; }

/* ---------- Media & photo slots ---------- */
figure.exq-media {
	position: relative;
	margin: 0;
	aspect-ratio: var(--exq-ratio, 4 / 3);
	overflow: hidden;
	background: var(--exq-linen);
	width: 100%;
}
figure.exq-media > img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border-radius: 0;
}
.exq-slot {
	background:
		repeating-linear-gradient(135deg, rgba(140, 106, 34, 0.08) 0 1px, transparent 1px 11px),
		#ebe8e2;
	display: grid;
	place-items: center;
	min-height: 160px;
}
.exq-slot::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(140, 106, 34, 0.3);
	pointer-events: none;
}
.exq-slot__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	max-width: 30ch;
	padding: 24px;
	text-align: center;
	color: var(--exq-stone);
	font: 500 0.8125rem/1.5 var(--exq-sans);
}
.exq-slot__icon { color: var(--exq-brass); }
.exq-sec--dark .exq-slot {
	background:
		repeating-linear-gradient(135deg, rgba(198, 160, 78, 0.1) 0 1px, transparent 1px 11px),
		var(--exq-dark-2);
}
.exq-sec--dark .exq-slot::after { border-color: rgba(198, 160, 78, 0.3); }
.exq-sec--dark .exq-slot__inner { color: #a69f96; }
.exq-sec--dark .exq-slot__icon { color: var(--exq-gold); }

/* ---------- Tick lists ---------- */
.exq-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.exq-ticks li { display: flex; gap: 12px; align-items: flex-start; font-size: 1rem; line-height: 1.5; color: var(--exq-ink-2); }
.exq-ticks .exq-icon { color: var(--exq-brass); margin-top: 1px; }
.exq-ticks--rule { gap: 0; margin-top: 32px; border-top: 1px solid var(--exq-line); }
.exq-ticks--rule li { padding-block: 14px; border-bottom: 1px solid var(--exq-line); }
.exq-sec--dark .exq-ticks li { color: #e7e1d8; }
.exq-sec--dark .exq-ticks .exq-icon { color: var(--exq-gold); }
.exq-sec--dark .exq-ticks--rule,
.exq-sec--dark .exq-ticks--rule li { border-color: var(--exq-dark-line); }

/* ==========================================================================
   Hero
   ========================================================================== */
.exq-hero {
	--exq-edge: max(var(--exq-gutter), calc((100% - var(--exq-max)) / 2 + var(--exq-gutter)));
	--exq-inner: calc(min(100%, var(--exq-max)) - 2 * var(--exq-gutter));
	display: grid;
	grid-template-columns:
		var(--exq-edge)
		calc((var(--exq-inner) + var(--exq-gap)) * 5 / 12 - var(--exq-gap))
		calc((var(--exq-inner) + var(--exq-gap)) / 12 + var(--exq-gap))
		minmax(0, 1fr);
	min-height: clamp(580px, calc(100svh - var(--exq-header-h)), 860px);
	background: var(--exq-white);
	color: var(--exq-ink);
}
.exq-hero__copy {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	padding-block: 72px;
}
.exq-hero__title {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(2.9rem, 5.1vw, 4.4rem);
	line-height: 1;
	letter-spacing: -0.02em;
	margin: 0 0 32px;
	color: var(--exq-ink);
}
.exq-hero__text {
	font-size: clamp(1.0625rem, 1.25vw, 1.1875rem);
	line-height: 1.6;
	color: var(--exq-ink-2);
	margin: 0 0 36px;
	max-width: 32em;
}
.exq-hero__note {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 32px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--exq-line);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--exq-stone);
	max-width: 30em;
}
.exq-hero__note .exq-icon { color: var(--exq-brass); margin-top: 1px; }
.exq-hero__media { grid-column: 4; grid-row: 1; position: relative; min-height: 420px; }
.exq-hero__media .exq-media { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }

@media (max-width: 899px) {
	.exq-hero { display: flex; flex-direction: column; min-height: 0; }
	.exq-hero__media { order: -1; min-height: 0; }
	.exq-hero__media .exq-media { position: relative; aspect-ratio: 5 / 4; }
	.exq-hero__copy { align-self: stretch; padding: 40px var(--exq-gutter) 64px; }
}

/* ==========================================================================
   Page header
   ========================================================================== */
.exq-phead {
	background: var(--exq-white);
	color: var(--exq-ink);
	padding-block: clamp(56px, 7vw, 104px) clamp(40px, 5vw, 72px);
}
.exq-phead__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 40px; align-items: end; }
.exq-phead__copy { grid-column: 1 / span 8; }
.exq-phead--image .exq-phead__copy { grid-column: 1 / span 6; }
.exq-phead__media { grid-column: 8 / span 5; }
.exq-phead__title {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(2.75rem, 5.6vw, 5rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0;
	text-wrap: balance;
}
.exq-phead__text {
	margin: 24px 0 0;
	font-size: clamp(1.0625rem, 1.35vw, 1.25rem);
	line-height: 1.6;
	color: var(--exq-ink-2);
	max-width: 36em;
	text-wrap: pretty;
}
@media (max-width: 899px) {
	.exq-phead__copy, .exq-phead--image .exq-phead__copy, .exq-phead__media { grid-column: 1 / -1; }
}

/* ==========================================================================
   Statement + points
   ========================================================================== */
.exq-intro__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 32px; align-items: start; }
.exq-intro__heading {
	grid-column: 1 / span 6;
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(1.9rem, 3.1vw, 2.875rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
	margin: 0;
	text-wrap: balance;
}
.exq-intro__text { grid-column: 8 / span 5; }
.exq-points {
	list-style: none;
	margin: clamp(56px, 7vw, 96px) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 40px;
}
.exq-points__item { border-top: 1px solid var(--exq-ink); padding-top: 20px; }
.exq-points__title { font-family: var(--exq-serif); font-weight: 500; font-size: 1.375rem; line-height: 1.2; margin: 0 0 10px; color: inherit; }
.exq-points__text { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--exq-stone); }
.exq-sec--dark .exq-points__item { border-color: var(--exq-gold); }
.exq-sec--dark .exq-points__text { color: #b9b1a7; }
@media (max-width: 899px) {
	.exq-intro__heading, .exq-intro__text { grid-column: 1 / -1; }
	.exq-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 559px) {
	.exq-points { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Packages
   ========================================================================== */
.exq-compare { overflow-x: auto; }
.exq-compare__table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: 1rem;
	margin: 0;
	background: transparent;
}
.exq-compare__table th,
.exq-compare__table td {
	padding: 16px 12px;
	border: 0;
	border-bottom: 1px solid var(--exq-line);
	text-align: center;
	vertical-align: middle;
	background: transparent;
	color: var(--exq-ink);
	font-weight: 400;
	line-height: 1.4;
}
.exq-compare__table thead th,
.exq-compare__table thead td { border-bottom: 1px solid var(--exq-ink); padding-bottom: 20px; vertical-align: bottom; }
.exq-compare__table tbody th[scope="row"] { text-align: left; padding-left: 0; color: var(--exq-ink-2); width: 28%; }
.exq-compare__table thead td:first-child,
.exq-compare__table tfoot td:first-child { width: 28%; }
.exq-compare__name { display: block; font-family: var(--exq-serif); font-weight: 500; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.1; }
.exq-compare__tag { display: block; margin-top: 6px; font-size: 0.875rem; color: var(--exq-brass); }
.exq-compare__group th {
	text-align: left !important;
	padding: 32px 0 10px !important;
	font-weight: 600 !important;
	font-size: 0.9375rem;
	color: var(--exq-ink) !important;
	border-bottom: 1px solid var(--exq-line);
}
.exq-compare__table .exq-icon { color: var(--exq-brass); }
.exq-compare__no { display: inline-block; width: 14px; height: 1px; background: #c9c3ba; vertical-align: middle; }
.exq-compare__table tfoot td { border-bottom: 0; padding-top: 28px; }
.exq-compare__table tfoot .exq-btn { width: 100%; max-width: 200px; }
.exq-pcards { display: none; }

@media (max-width: 859px) {
	.exq-compare { display: none; }
	.exq-pcards { display: grid; gap: 16px; list-style: none; margin: 0; padding: 0; }
	.exq-pcard { background: var(--exq-white); border: 1px solid var(--exq-line); padding: 24px; }
	.exq-sec--white .exq-pcard { background: var(--exq-linen); border-color: transparent; }
	.exq-pcard__name { font-family: var(--exq-serif); font-weight: 500; font-size: 1.75rem; line-height: 1.1; margin: 0 0 16px; }
	.exq-pcard__name span { display: block; margin-top: 4px; font-family: var(--exq-sans); font-size: 0.875rem; color: var(--exq-brass); }
	.exq-pcard__list { margin: 0 0 20px; }
	.exq-pcard__list div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--exq-line); font-size: 0.9375rem; }
	.exq-pcard__list dt { color: var(--exq-ink-2); }
	.exq-pcard__list dd { margin: 0; font-weight: 600; text-align: right; }
	.exq-pcard .exq-btn { width: 100%; }
}

/* Detailed rows (packages page) */
.exq-prows { border-bottom: 1px solid var(--exq-line); }
.exq-prow {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 24px;
	padding-block: clamp(40px, 5vw, 64px);
	border-top: 1px solid var(--exq-line);
	scroll-margin-top: calc(var(--exq-header-h) + 16px);
}
.exq-prow:first-child { border-top-color: var(--exq-ink); }
.exq-prow__title { grid-column: 1 / span 3; }
.exq-prow__name { font-family: var(--exq-serif); font-weight: 500; font-size: clamp(2.25rem, 3.6vw, 3.25rem); line-height: 1; margin: 0; letter-spacing: -0.01em; }
.exq-prow__tag { margin: 10px 0 0; font-size: 0.9375rem; color: var(--exq-brass); }
.exq-prow__body { grid-column: 4 / span 4; }
.exq-prow__desc { margin: 0 0 20px; font-size: 1.0625rem; line-height: 1.65; color: var(--exq-ink-2); }
.exq-prow__for { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--exq-stone); }
.exq-prow__for strong { display: block; color: var(--exq-ink); font-weight: 600; margin-bottom: 2px; }
.exq-prow__incl { grid-column: 9 / span 4; }
.exq-prow__sub { margin: 0 0 14px; font: 600 0.9375rem/1.3 var(--exq-sans); color: var(--exq-ink); }
.exq-prow__incl .exq-ticks { margin-bottom: 28px; }
@media (max-width: 899px) {
	.exq-prow__title, .exq-prow__body, .exq-prow__incl { grid-column: 1 / -1; }
}

/* ==========================================================================
   Steps (the quote journey)
   ========================================================================== */
.exq-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 40px;
	counter-reset: none;
}
.exq-steps__item { border-top: 1px solid var(--exq-line); padding-top: 24px; }
.exq-steps__num {
	display: block;
	font-family: var(--exq-serif);
	font-size: 3rem;
	line-height: 1;
	color: var(--exq-brass);
	margin-bottom: 20px;
	font-variant-numeric: lining-nums;
}
.exq-steps__title { font-family: var(--exq-serif); font-weight: 500; font-size: 1.375rem; line-height: 1.2; margin: 0 0 10px; }
.exq-steps__text { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--exq-stone); }
@media (max-width: 899px) { .exq-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .exq-steps { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Buffet presentation
   ========================================================================== */
.exq-pres {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: clamp(32px, 4vw, 48px);
	align-items: start;
}
.exq-pres__copy { grid-column: 1 / span 5; grid-row: 1; }
.exq-pres__main { grid-column: 7 / span 6; grid-row: 1 / span 2; align-self: stretch; display: flex; }
.exq-pres__main .exq-media { aspect-ratio: auto; height: 100%; min-height: 520px; }
.exq-pres__detail { grid-column: 1 / span 3; grid-row: 2; align-self: end; }
@media (max-width: 899px) {
	.exq-pres__copy { grid-column: 1 / -1; }
	.exq-pres__main { grid-column: 1 / span 8; grid-row: 2; }
	.exq-pres__main .exq-media { aspect-ratio: 4 / 5; height: auto; min-height: 0; }
	.exq-pres__detail { grid-column: 9 / span 4; grid-row: 2; }
}
@media (max-width: 559px) {
	.exq-pres__main { grid-column: 1 / -1; }
	.exq-pres__detail { display: none; }
}

/* ==========================================================================
   Events
   ========================================================================== */
.exq-evx {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	grid-template-rows: auto 1fr;
	row-gap: 40px;
	align-items: start;
}
.exq-evx__head { grid-column: 1 / span 5; grid-row: 1; }
.exq-evx__media { grid-column: 1 / span 4; grid-row: 2; display: grid; }
.exq-evx__img { grid-area: 1 / 1; opacity: 0; transition: opacity 0.45s ease; }
.exq-evx__img.is-active { opacity: 1; }
.exq-evx__list { grid-column: 7 / span 6; grid-row: 1 / span 2; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--exq-line); }
.exq-evx__item { border-bottom: 1px solid var(--exq-line); }
.exq-evx__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 6px;
	padding: 22px 0;
	text-decoration: none;
	color: inherit;
}
.exq-evx__name {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(1.625rem, 2.4vw, 2.25rem);
	line-height: 1.1;
	color: var(--exq-ink);
	transition: color 0.2s ease;
}
.exq-evx__sum { font-size: 0.9375rem; line-height: 1.55; color: var(--exq-stone); max-width: 40em; }
.exq-evx__item.is-active .exq-evx__name,
.exq-evx__link:hover .exq-evx__name,
.exq-evx__link:focus-visible .exq-evx__name { color: var(--exq-brass); }
@media (max-width: 899px) {
	.exq-evx__head, .exq-evx__list { grid-column: 1 / -1; grid-row: auto; }
	.exq-evx__media { display: none; }
}

.exq-evrows { border-bottom: 1px solid var(--exq-line); }
.exq-evrow {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 24px;
	align-items: center;
	padding-block: clamp(40px, 5vw, 64px);
	border-top: 1px solid var(--exq-line);
	scroll-margin-top: calc(var(--exq-header-h) + 16px);
}
.exq-evrow:first-child { border-top-color: var(--exq-ink); }
.exq-evrow__media { grid-column: 1 / span 5; }
.exq-evrow__copy { grid-column: 7 / span 6; }
.exq-evrow__name { font-family: var(--exq-serif); font-weight: 500; font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.05; margin: 0 0 16px; }
.exq-evrow__sum { margin: 0 0 16px; font-size: 1.125rem; line-height: 1.55; color: var(--exq-ink); }
.exq-evrow__text { margin-bottom: 28px; }
@media (max-width: 899px) {
	.exq-evrow__media, .exq-evrow__copy { grid-column: 1 / -1; }
}

/* ==========================================================================
   Photo + text
   ========================================================================== */
.exq-split__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 40px;
	align-items: center;
}
.exq-split--left .exq-split__media { grid-column: 1 / span 6; grid-row: 1; }
.exq-split--left .exq-split__copy { grid-column: 8 / span 5; grid-row: 1; }
.exq-split--right .exq-split__copy { grid-column: 1 / span 5; grid-row: 1; }
.exq-split--right .exq-split__media { grid-column: 7 / span 6; grid-row: 1; }
.exq-split__copy .exq-prose { margin-top: 4px; }
.exq-split__copy .exq-actions { margin-top: 36px; }
@media (max-width: 899px) {
	.exq-split--left .exq-split__media,
	.exq-split--left .exq-split__copy,
	.exq-split--right .exq-split__media,
	.exq-split--right .exq-split__copy { grid-column: 1 / -1; grid-row: auto; }
}

/* ==========================================================================
   Founders
   ========================================================================== */
.exq-people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 64px; }
.exq-person { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 28px; align-content: start; }
.exq-person__media figure.exq-media > img { object-position: 50% 12%; }
.exq-person__role { margin: 0 0 6px; font-size: 0.9375rem; color: var(--exq-brass); }
.exq-person__name { font-family: var(--exq-serif); font-weight: 500; font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.05; margin: 0 0 20px; }
.exq-person__bio { margin-bottom: 24px; }
@media (max-width: 899px) { .exq-people { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Pull quote
   ========================================================================== */
.exq-pull { margin: 0 auto; max-width: 54rem; text-align: center; }
.exq-pull__mark { display: block; width: 96px; height: auto; margin: 0 auto 32px; }
.exq-pull__q { margin: 0; padding: 0; border: 0; }
.exq-pull__q p {
	margin: 0;
	font-family: var(--exq-serif);
	font-weight: 400;
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	line-height: 1.25;
	text-wrap: balance;
}
.exq-pull__cite { margin-top: 28px; font-size: 0.9375rem; color: var(--exq-brass); }
.exq-sec--dark .exq-pull__cite { color: var(--exq-gold); }

/* ==========================================================================
   Service area
   ========================================================================== */
.exq-area {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 40px;
	align-items: center;
}
.exq-area__map { grid-column: 1 / span 6; }
.exq-area__copy { grid-column: 8 / span 5; }
.exq-area .exq-h2 { font-size: clamp(1.9rem, 2.8vw, 2.625rem); }
.exq-map { display: block; width: 100%; height: auto; }
.exq-map .m-land { fill: var(--exq-white); stroke: #d4cdc2; stroke-width: 1.4; stroke-linejoin: round; }
.exq-sec--white .exq-map .m-land { fill: var(--exq-linen); stroke: #d9d3ca; }
.exq-map .m-ring { fill: rgba(198, 160, 78, 0.09); stroke: var(--exq-brass); stroke-width: 2; stroke-dasharray: 7 7; }
.exq-map .m-ringlabel { font: 600 24px var(--exq-sans); fill: var(--exq-brass); }
.exq-map .m-leader { stroke: var(--exq-ink); stroke-width: 1.5; }
.exq-map .m-town { fill: var(--exq-ink); stroke: var(--exq-white); stroke-width: 2.5; }
.exq-map .m-base { fill: var(--exq-gold); stroke: var(--exq-ink); stroke-width: 2; }
.exq-map .m-base-ring { fill: none; stroke: var(--exq-gold); stroke-width: 2; }
.exq-map .m-label {
	font: 500 25px var(--exq-sans);
	fill: var(--exq-ink);
	paint-order: stroke;
	stroke: var(--exq-white);
	stroke-width: 6px;
	stroke-linejoin: round;
}
.exq-sec--white .exq-map .m-label { stroke: var(--exq-linen); }
.exq-map .m-label--base { font-weight: 700; font-size: 30px; }
.exq-towns {
	list-style: none;
	margin: 32px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--exq-line);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 8px;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--exq-ink-2);
}
.exq-towns li.is-base { font-weight: 600; color: var(--exq-ink); }
.exq-towns li.is-base span { font-weight: 400; color: var(--exq-stone); }
.exq-towns li.is-more { color: var(--exq-stone); font-style: italic; font-family: var(--exq-serif); font-size: 1.0625rem; }
.exq-area__note { display: flex; gap: 12px; align-items: flex-start; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--exq-line); font-size: 0.9375rem; color: var(--exq-stone); }
.exq-area__note .exq-icon { color: var(--exq-brass); }
.exq-area .exq-actions { margin-top: 32px; }
@media (max-width: 899px) {
	.exq-area__map, .exq-area__copy { grid-column: 1 / -1; }
	.exq-area__copy { order: -1; }
}

/* ==========================================================================
   Call to action
   ========================================================================== */
.exq-cta__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--exq-gap);
	row-gap: 32px;
	align-items: end;
}
.exq-cta__copy { grid-column: 1 / span 7; }
.exq-cta__copy .exq-h2 { color: #fff; }
.exq-cta__actions { grid-column: 9 / span 4; }
.exq-cta__actions .exq-actions { justify-content: flex-start; }
.exq-cta__phones { margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; font-size: 0.9375rem; color: #b9b1a7; }
.exq-cta__phones span { flex-basis: 100%; }
.exq-cta__phones a { display: inline-flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; font-weight: 600; font-variant-numeric: tabular-nums; }
.exq-cta__phones a:hover { color: var(--exq-gold); }
.exq-cta__phones .exq-icon { color: var(--exq-gold); }
@media (max-width: 899px) {
	.exq-cta__copy, .exq-cta__actions { grid-column: 1 / -1; }
}

/* ==========================================================================
   Upgrades
   ========================================================================== */
.exq-upg__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 40px; align-items: start; }
.exq-upg__head { grid-column: 1 / span 4; }
.exq-upg__list { grid-column: 6 / span 7; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--exq-gap); }
.exq-upg__item { padding: 20px 0 22px; border-top: 1px solid var(--exq-line); }
.exq-upg__item dt { font-family: var(--exq-serif); font-weight: 500; font-size: 1.375rem; line-height: 1.2; margin: 0 0 6px; color: var(--exq-ink); }
.exq-upg__item dd { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--exq-stone); }
@media (max-width: 899px) {
	.exq-upg__head, .exq-upg__list { grid-column: 1 / -1; }
}
@media (max-width: 559px) { .exq-upg__list { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   FAQ
   ========================================================================== */
.exq-faq__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 32px; align-items: start; }
.exq-faq__head { grid-column: 1 / span 4; }
.exq-faq__list { grid-column: 6 / span 7; border-top: 1px solid var(--exq-ink); }
.exq-faq__item { border-bottom: 1px solid var(--exq-line); }
.exq-faq__item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 22px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: 1.375rem;
	line-height: 1.25;
	color: var(--exq-ink);
}
.exq-faq__item summary::-webkit-details-marker { display: none; }
.exq-faq__item summary .exq-icon { color: var(--exq-brass); transition: transform 0.2s ease; }
.exq-faq__item[open] summary .exq-icon { transform: rotate(45deg); }
.exq-faq__a { padding: 0 48px 24px 0; font-size: 1rem; line-height: 1.65; color: var(--exq-ink-2); }
.exq-faq__a p { margin: 0 0 0.8em; }
.exq-faq__a p:last-child { margin: 0; }
@media (max-width: 899px) {
	.exq-faq__head, .exq-faq__list { grid-column: 1 / -1; }
}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.exq-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--exq-gap); margin-top: 16px; }
.exq-review { margin: 0; padding-top: 24px; border-top: 1px solid var(--exq-ink); }
.exq-review blockquote { margin: 0 0 20px; padding: 0; border: 0; }
.exq-review blockquote p { margin: 0; font-family: var(--exq-serif); font-size: 1.375rem; line-height: 1.4; }
.exq-review figcaption { font-size: 0.9375rem; color: var(--exq-stone); }
.exq-review figcaption strong { display: block; color: var(--exq-ink); font-weight: 600; }
@media (max-width: 899px) { .exq-reviews { grid-template-columns: minmax(0, 1fr); } }
.exq-editor-note { padding: 24px; margin: 8px; border: 1px dashed var(--exq-brass); background: var(--exq-linen); font: 14px/1.5 var(--exq-sans); color: var(--exq-ink-2); }

/* ==========================================================================
   Menu browser
   ========================================================================== */
.exq-tabs { display: flex; flex-wrap: wrap; gap: 0 40px; border-bottom: 1px solid var(--exq-line); margin-bottom: clamp(40px, 5vw, 64px); }
.exq-tabs__tab {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: 0 0 16px;
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(1.375rem, 2.2vw, 1.875rem);
	line-height: 1.2;
	color: var(--exq-stone);
	cursor: pointer;
	border-radius: 0;
}
.exq-tabs__tab:hover { color: var(--exq-ink); background: none; }
.exq-tabs__tab[aria-selected="true"] { color: var(--exq-ink); border-bottom-color: var(--exq-gold); }
.exq-menu__panel { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 32px; align-items: start; }
.exq-menu__panel[hidden] { display: none; }
.exq-menu__nav { grid-column: 1 / span 3; position: sticky; top: calc(var(--exq-header-h) + 24px); }
.exq-menu__note { margin: 0 0 20px; font-size: 0.9375rem; line-height: 1.55; color: var(--exq-stone); }
.exq-menu__nav ul { list-style: none; margin: 0 0 28px; padding: 0; border-top: 1px solid var(--exq-line); }
.exq-menu__nav li a {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--exq-line);
	text-decoration: none;
	color: var(--exq-ink);
	font-size: 0.9375rem;
}
.exq-menu__nav li a span { color: var(--exq-stone); font-variant-numeric: tabular-nums; }
.exq-menu__nav li a:hover { color: var(--exq-brass); }
.exq-menu__nav .exq-btn { width: 100%; }
.exq-menu__courses { grid-column: 5 / span 8; }
.exq-course { scroll-margin-top: calc(var(--exq-header-h) + 24px); }
.exq-course + .exq-course { margin-top: clamp(48px, 6vw, 80px); }
.exq-course__name {
	font-family: var(--exq-serif);
	font-weight: 500;
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	line-height: 1.1;
	margin: 0;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--exq-ink);
}
.exq-course__note { margin: 12px 0 0; font-size: 0.9375rem; color: var(--exq-stone); }
.exq-dishes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--exq-gap); }
.exq-dish { padding: 16px 0 17px; border-bottom: 1px solid var(--exq-line); }
.exq-dish__name { font-family: var(--exq-serif); font-size: 1.25rem; line-height: 1.3; color: var(--exq-ink); }
.exq-dish__sig { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; font-size: 0.75rem; font-weight: 600; color: var(--exq-brass); vertical-align: 2px; }
.exq-dish__sig .exq-icon { width: 13px; height: 13px; fill: currentColor; }
.exq-dish__desc { display: block; margin-top: 4px; font-size: 0.9375rem; line-height: 1.5; color: var(--exq-stone); }
.exq-dish__diet { display: block; margin-top: 4px; font-size: 0.8125rem; color: var(--exq-brass); }
@media (max-width: 899px) {
	.exq-menu__nav { grid-column: 1 / -1; position: static; }
	.exq-menu__nav ul { display: none; }
	.exq-menu__courses { grid-column: 1 / -1; }
}
@media (max-width: 559px) { .exq-dishes { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Gallery
   ========================================================================== */
.exq-filters { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-bottom: 32px; }
.exq-filters__btn {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 1px solid transparent;
	padding: 6px 0;
	font: 500 0.9375rem var(--exq-sans);
	color: var(--exq-stone);
	cursor: pointer;
	border-radius: 0;
}
.exq-filters__btn:hover { color: var(--exq-ink); background: none; }
.exq-filters__btn[aria-pressed="true"] { color: var(--exq-ink); border-bottom-color: var(--exq-gold); }
.exq-gallery { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: var(--exq-gap); }
.exq-gallery__item { break-inside: avoid; margin-bottom: var(--exq-gap); }
.exq-gallery__item[hidden] { display: none; }
.exq-gallery__link { display: block; }
.exq-gallery__link img { display: block; width: 100%; height: auto; }
.exq-gallery__empty { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--exq-gap); align-items: start; }
@media (max-width: 899px) { .exq-gallery { columns: 2; } .exq-gallery__empty { grid-template-columns: repeat(2, minmax(0, 1fr)); } .exq-gallery__empty > :last-child { display: none; } }
@media (max-width: 559px) { .exq-gallery { columns: 1; } .exq-gallery__empty { grid-template-columns: minmax(0, 1fr); } .exq-gallery__empty > :nth-child(n+2) { display: none; } }
.exq-lightbox { border: 0; padding: 0; background: transparent; max-width: 92vw; max-height: 92vh; overflow: visible; }
.exq-lightbox::backdrop { background: rgba(20, 18, 16, 0.92); }
.exq-lightbox img { display: block; max-width: 92vw; max-height: 88vh; width: auto; height: auto; }
.exq-lightbox__close { position: fixed; top: 16px; right: 16px; width: 48px; height: 48px; display: grid; place-items: center; background: none; border: 0; color: #fff; cursor: pointer; }

/* ==========================================================================
   Contact
   ========================================================================== */
.exq-contact__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 48px; align-items: start; }
.exq-contact__info { grid-column: 1 / span 5; }
.exq-contact__form { grid-column: 7 / span 6; background: var(--exq-linen); padding: clamp(28px, 4vw, 48px); }
.exq-details { margin: 32px 0 0; border-top: 1px solid var(--exq-line); }
.exq-details > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--exq-line); align-items: baseline; }
.exq-details dt { display: flex; gap: 10px; align-items: center; font-size: 0.875rem; color: var(--exq-stone); }
.exq-details dt .exq-icon { color: var(--exq-brass); width: 18px; height: 18px; }
.exq-details dd { margin: 0; font-family: var(--exq-serif); font-size: 1.3125rem; line-height: 1.35; color: var(--exq-ink); }
.exq-details dd a { display: block; color: var(--exq-ink); text-decoration: none; font-variant-numeric: lining-nums; }
.exq-details dd a:hover { color: var(--exq-brass); }
.exq-details dd a.exq-inline { display: inline; font-family: var(--exq-sans); font-size: 0.9375rem; color: var(--exq-brass); text-decoration: underline; text-underline-offset: 4px; margin-left: 4px; }
.exq-social { display: flex; gap: 20px; margin: 24px 0 0; }
.exq-social a { display: inline-flex; gap: 8px; align-items: center; color: var(--exq-ink); text-decoration: none; font-size: 0.9375rem; }
.exq-social a:hover { color: var(--exq-brass); }
.exq-contact__quote { margin-top: 40px; padding: 28px; border: 1px solid var(--exq-line); }
.exq-contact__quote p { margin: 0 0 20px; font-size: 1rem; line-height: 1.55; color: var(--exq-ink-2); }
@media (max-width: 899px) {
	.exq-contact__info, .exq-contact__form { grid-column: 1 / -1; }
}
@media (max-width: 559px) {
	.exq-details > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* ==========================================================================
   Forms (contact + quote)
   ========================================================================== */
.exq-form { display: grid; gap: 20px; }
.exq-field { display: grid; gap: 8px; min-width: 0; align-content: start; }
.exq-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.exq-field label,
.exq-field .exq-label { font: 600 0.875rem/1.3 var(--exq-sans); color: var(--exq-ink); }
.exq-field .exq-hint { font-size: 0.8125rem; color: var(--exq-stone); font-weight: 400; }
.exq-field input,
.exq-field select,
.exq-field textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 16px;
	font: 400 1rem/1.4 var(--exq-sans);
	color: var(--exq-ink);
	background: var(--exq-white);
	border: 1px solid #cfc9c0;
	border-radius: var(--exq-radius);
	box-shadow: none;
	appearance: none;
}
.exq-field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%231e1b18' stroke-width='1.4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
}
.exq-field textarea { min-height: 120px; resize: vertical; }
.exq-field input:focus,
.exq-field select:focus,
.exq-field textarea:focus { border-color: var(--exq-ink); outline: 2px solid var(--exq-gold); outline-offset: 1px; }
.exq-field.is-invalid input,
.exq-field.is-invalid select,
.exq-field.is-invalid textarea { border-color: var(--exq-error); }
.exq-field__error { font-size: 0.8125rem; color: var(--exq-error); }
.exq-check { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-start; font-size: 0.9375rem; line-height: 1.5; color: var(--exq-ink-2); cursor: pointer; }
.exq-check > span { flex: 1 1 0; min-width: 0; }
.exq-check .exq-field__error { flex-basis: 100%; padding-left: 32px; }
.exq-check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--exq-ink); }
.exq-check a { color: var(--exq-brass); }
.exq-check.is-invalid { color: var(--exq-error); }
.exq-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.exq-form__error { margin: 0; padding: 12px 16px; background: #f8ebe8; color: var(--exq-error); font-size: 0.9375rem; }
.exq-form .exq-btn { justify-self: start; }
.exq-form__done:focus { outline: none; }
@media (max-width: 559px) { .exq-field-row { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Menu selector & quote builder
   ========================================================================== */
.exq-qb-sec { padding-top: clamp(16px, 2vw, 24px); }
.exq-qb__loading { padding: 64px 0; color: var(--exq-stone); }
.exq-qb { --qb-card: min(380px, 32vw); }

/* Progress */
.exq-qb__progress {
	list-style: none;
	margin: 0 0 clamp(40px, 5vw, 56px);
	padding: 0;
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	border-top: 1px solid var(--exq-line);
}
.exq-qb__progress li { margin: 0; }
.exq-qb__progress button {
	appearance: none;
	width: 100%;
	display: flex;
	gap: 10px;
	align-items: baseline;
	padding: 14px 8px 0 0;
	margin-top: -1px;
	background: none;
	border: 0;
	border-top: 2px solid transparent;
	border-radius: 0;
	text-align: left;
	font: 500 0.875rem/1.3 var(--exq-sans);
	color: #a9a29a;
	cursor: default;
}
.exq-qb__progress .n { font-family: var(--exq-serif); font-size: 1.125rem; font-variant-numeric: lining-nums; }
.exq-qb__progress .is-done button { color: var(--exq-ink-2); cursor: pointer; border-top-color: var(--exq-gold); }
.exq-qb__progress .is-done button:hover { color: var(--exq-brass); background: none; }
.exq-qb__progress .is-current button { color: var(--exq-ink); border-top-color: var(--exq-ink); font-weight: 600; }

/* Layout: step + live menu card */
.exq-qb__layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); align-items: start; }
.exq-qb__main { grid-column: 1 / span 7; min-width: 0; }
.exq-qb__aside { grid-column: 9 / span 4; position: sticky; top: calc(var(--exq-header-h) + 24px); }
.exq-qb--wide .exq-qb__main { grid-column: 1 / -1; }
.exq-qb--wide .exq-qb__aside { display: none; }
.exq-qb--details .exq-qb__main { max-width: 720px; }

.exq-qb__title { font-family: var(--exq-serif); font-weight: 500; font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.01em; margin: 0 0 12px; }
.exq-qb__intro { margin: 0 0 32px; font-size: 1.0625rem; line-height: 1.6; color: var(--exq-ink-2); max-width: 40em; }
.exq-qb__title:focus { outline: none; }

/* Choice lists */
.exq-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; border: 0; }
.exq-choices--one { grid-template-columns: minmax(0, 1fr); }
.exq-choice { position: relative; display: block; cursor: pointer; }
.exq-choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.exq-choice__box {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	gap: 4px 16px;
	align-items: start;
	height: 100%;
	padding: 20px 22px;
	border: 1px solid var(--exq-line);
	background: var(--exq-white);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.exq-choice:hover .exq-choice__box { border-color: #b9b2a8; }
.exq-choice input:checked + .exq-choice__box { border-color: var(--exq-ink); background: #fbfaf8; box-shadow: inset 0 0 0 1px var(--exq-ink); }
.exq-choice input:focus-visible + .exq-choice__box { outline: 2px solid var(--exq-gold); outline-offset: 2px; }
.exq-choice__mark {
	grid-row: 1 / span 3;
	width: 22px;
	height: 22px;
	margin-top: 3px;
	border: 1px solid #b9b2a8;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: #fff;
}
.exq-choice input[type="checkbox"] + .exq-choice__box .exq-choice__mark { border-radius: 2px; }
.exq-choice input:checked + .exq-choice__box .exq-choice__mark { background: var(--exq-ink); border-color: var(--exq-ink); color: #fff; }
.exq-choice__mark .exq-icon { width: 14px; height: 14px; opacity: 0; }
.exq-choice input:checked + .exq-choice__box .exq-choice__mark .exq-icon { opacity: 1; }
.exq-choice__name { font-family: var(--exq-serif); font-weight: 500; font-size: 1.375rem; line-height: 1.25; color: var(--exq-ink); }
.exq-choice__name small { display: block; margin-top: 2px; font-family: var(--exq-sans); font-size: 0.875rem; font-weight: 500; color: var(--exq-brass); }
.exq-choice__desc { font-size: 0.9375rem; line-height: 1.5; color: var(--exq-stone); }
.exq-choice__meta { font-size: 0.875rem; line-height: 1.5; color: var(--exq-ink-2); margin-top: 6px; }
.exq-choice.is-disabled { cursor: not-allowed; }
.exq-choice.is-disabled input { cursor: not-allowed; }
.exq-choice.is-disabled .exq-choice__box { opacity: 0.45; }

/* Dish rows */
.exq-qb__menus { display: flex; gap: 0 32px; flex-wrap: wrap; border-bottom: 1px solid var(--exq-line); margin-bottom: 32px; }
.exq-qb__course { margin: 0 0 48px; padding: 0; border: 0; min-width: 0; }
.exq-qb__course legend { display: contents; }
.exq-qb__chead { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--exq-ink); }
.exq-qb__cname { font-family: var(--exq-serif); font-weight: 500; font-size: 1.75rem; line-height: 1.15; margin: 0; }
.exq-qb__count { font-size: 0.875rem; font-weight: 600; color: var(--exq-ink-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.exq-qb__count.is-full { color: var(--exq-brass); }
.exq-qb__cnote { margin: 10px 0 0; font-size: 0.875rem; color: var(--exq-stone); }
.exq-dishpick { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--exq-line); cursor: pointer; align-items: start; }
.exq-dishpick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.exq-dishpick__box { grid-row: 1 / span 2; width: 20px; height: 20px; margin-top: 3px; border: 1px solid #b9b2a8; border-radius: 2px; display: grid; place-items: center; background: #fff; color: #fff; }
.exq-dishpick__box .exq-icon { width: 14px; height: 14px; opacity: 0; }
.exq-dishpick input:checked ~ .exq-dishpick__box { background: var(--exq-ink); border-color: var(--exq-ink); }
.exq-dishpick input:checked ~ .exq-dishpick__box .exq-icon { opacity: 1; }
.exq-dishpick input:focus-visible ~ .exq-dishpick__box { outline: 2px solid var(--exq-gold); outline-offset: 2px; }
.exq-dishpick__name { font-family: var(--exq-serif); font-size: 1.1875rem; line-height: 1.3; color: var(--exq-ink); }
.exq-dishpick__desc { grid-column: 2; font-size: 0.875rem; line-height: 1.5; color: var(--exq-stone); }
.exq-dishpick.is-disabled { cursor: not-allowed; }
.exq-dishpick.is-disabled .exq-dishpick__name,
.exq-dishpick.is-disabled .exq-dishpick__desc { opacity: 0.4; }
.exq-dishpick:hover .exq-dishpick__box { border-color: var(--exq-ink); }
.exq-dishpick .exq-dish__sig { margin-left: 6px; }

/* Step nav */
.exq-qb__nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--exq-line); }
.exq-qb__nav .exq-btn--link { color: var(--exq-ink-2); }
.exq-qb__msg { margin: 16px 0 0; font-size: 0.9375rem; color: var(--exq-error); }
.exq-qb__note { margin: 0 0 32px; padding: 16px 20px; background: var(--exq-linen); font-size: 0.9375rem; line-height: 1.55; color: var(--exq-ink-2); border-left: 2px solid var(--exq-gold); }

/* The menu card */
.exq-card {
	position: relative;
	background: var(--exq-white);
	border: 1px solid var(--exq-line);
	padding: 36px 32px 32px;
	text-align: center;
	color: var(--exq-ink);
}
.exq-card::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(198, 160, 78, 0.55); pointer-events: none; }
.exq-card__mark { display: block; width: 64px; height: auto; margin: 0 auto 14px; }
.exq-card__title { font-family: var(--exq-serif); font-weight: 500; font-size: 1.625rem; line-height: 1.15; margin: 0; }
.exq-card__meta { margin: 6px 0 0; font-size: 0.8125rem; line-height: 1.5; color: var(--exq-stone); }
.exq-card__rule { display: block; width: 40px; height: 1px; margin: 20px auto; background: var(--exq-gold); border: 0; }
.exq-card__menu { font-family: var(--exq-serif); font-size: 0.9375rem; color: var(--exq-brass); margin: 0 0 4px; font-style: italic; }
.exq-card__course { margin: 16px 0 0; }
.exq-card__course:first-of-type { margin-top: 0; }
.exq-card__cname { margin: 0 0 6px; font-family: var(--exq-serif); font-weight: 500; font-size: 1rem; line-height: 1.3; font-variant-caps: all-small-caps; letter-spacing: 0.06em; color: var(--exq-brass); }
.exq-card__dishes { list-style: none; margin: 0; padding: 0; font-family: var(--exq-serif); font-size: 1.0625rem; line-height: 1.45; }
.exq-card__empty { margin: 0; font-family: var(--exq-serif); font-style: italic; font-size: 1.0625rem; color: var(--exq-stone); }
.exq-card__extras { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--exq-ink-2); }
.exq-qb__aside .exq-card { max-height: calc(100vh - var(--exq-header-h) - 48px); overflow: auto; }

/* Review step: the card is the centrepiece */
.exq-qb__review { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 32px; align-items: start; }
.exq-qb__review .exq-card { grid-column: 1 / span 6; padding: 56px 48px 48px; }
.exq-qb__review .exq-card__title { font-size: 2.25rem; }
.exq-qb__review .exq-card__dishes { font-size: 1.25rem; }
.exq-qb__summary { grid-column: 8 / span 5; }
.exq-qb__sumlist { margin: 0; border-top: 1px solid var(--exq-ink); }
.exq-qb__sumlist > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid var(--exq-line); align-items: baseline; }
.exq-qb__sumlist dt { font-size: 0.875rem; color: var(--exq-stone); grid-column: 1; }
.exq-qb__sumlist dd { margin: 0; grid-column: 1; font-family: var(--exq-serif); font-size: 1.25rem; line-height: 1.3; }
.exq-qb__sumlist .exq-btn--link { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 0.875rem; }

/* Details form within the builder */
.exq-qb__form { max-width: 720px; }
.exq-qb__fieldset { margin: 0 0 40px; padding: 0; border: 0; display: grid; gap: 20px; }
.exq-qb__fieldset legend { padding: 0; margin: 0 0 20px; font-family: var(--exq-serif); font-weight: 500; font-size: 1.5rem; }

/* Done */
.exq-qb__done { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--exq-gap); row-gap: 32px; align-items: start; }
.exq-qb__done-copy { grid-column: 1 / span 6; }
.exq-qb__done .exq-card { grid-column: 8 / span 5; }
.exq-qb__ref { display: inline-block; margin: 0 0 24px; padding: 8px 14px; background: var(--exq-linen); font-weight: 600; font-variant-numeric: tabular-nums; }

/* Mobile drawer */
.exq-qb__bar { display: none; }
.exq-qb__drawer { border: 0; padding: 0; width: min(560px, 100vw); max-width: 100vw; max-height: 88vh; margin: auto auto 0; background: transparent; }
.exq-qb__drawer::backdrop { background: rgba(20, 18, 16, 0.6); }
.exq-qb__drawer .exq-card { max-height: 84vh; overflow: auto; }
.exq-qb__drawer-close { position: absolute; top: 14px; right: 14px; z-index: 1; width: 40px; height: 40px; display: grid; place-items: center; background: #fff; border: 0; color: var(--exq-ink); cursor: pointer; }

@media (max-width: 1023px) {
	.exq-qb__progress { grid-template-columns: repeat(7, minmax(0, 1fr)); }
	.exq-qb__progress .t { display: none; }
	.exq-qb__progress .is-current .t { display: inline; }
	.exq-qb__progress .is-current { grid-column: span 1; }
	.exq-qb__main { grid-column: 1 / -1; }
	.exq-qb__aside { display: none; }
	.exq-qb__bar {
		position: sticky;
		bottom: 0;
		z-index: 20;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 12px;
		margin: 32px calc(-1 * var(--exq-gutter)) 0;
		padding: 12px var(--exq-gutter);
		background: var(--exq-ink);
		color: #fff;
	}
	.exq-qb__bar span { font-size: 0.9375rem; }
	.exq-qb__bar button { appearance: none; background: none; border: 1px solid rgba(255, 255, 255, 0.45); color: #fff; min-height: 44px; padding: 0 16px; font: 600 0.875rem var(--exq-sans); border-radius: var(--exq-radius); cursor: pointer; }
	.exq-qb--wide .exq-qb__bar { display: none; }
	.exq-qb__review .exq-card, .exq-qb__summary, .exq-qb__done-copy, .exq-qb__done .exq-card { grid-column: 1 / -1; }
}
@media (max-width: 599px) {
	.exq-qb__progress { display: flex; border-top: 0; }
	.exq-qb__progress li { flex: 1 1 0; }
	.exq-qb__progress button { padding: 0; height: 4px; overflow: hidden; border-top-width: 3px; background: var(--exq-line); }
	.exq-qb__progress .n, .exq-qb__progress .t { display: none !important; }
	.exq-qb__progress li + li { margin-left: 4px; }
	.exq-choices { grid-template-columns: minmax(0, 1fr); }
	.exq-qb__review .exq-card { padding: 40px 24px 32px; }
	.exq-qb__nav { flex-direction: column-reverse; align-items: stretch; }
	.exq-qb__nav .exq-btn { width: 100%; }
}

/* Print just the menu card */
@media print {
	body * { visibility: hidden; }
	.exq-qb__print, .exq-qb__print * { visibility: visible; }
	.exq-qb__print { position: absolute; left: 0; top: 0; width: 100%; border: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.exq-evx__img, .exq-btn, .exq-choice__box, .exq-faq__item summary .exq-icon { transition: none !important; }
}
