/**
 * LT Food Court: the hall plan.
 * One bold element: the home hero (the plan of the hall, twelve stalls with enamel number plates).
 * Everything else is quiet: terrazzo and tile sections, hairline rows, white counter panels, 6px corners.
 * Krona One (wide sign face) for headings, kitchen names and stall numbers; Sen for text and figures.
 */

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.lt-brand__name,
.lt-blog__title,
.lt-single__title,
.lt-404__title {
	letter-spacing: -0.02em;
	font-weight: 400;
}

.lt-num,
.lt-num p {
	font-variant-numeric: tabular-nums lining-nums;
}

body .elementor-button {
	font-weight: 700;
	letter-spacing: 0.01em;
}

.lt-h3 .elementor-heading-title {
	font-size: var(--lt-fs-lg);
}

.lt-h4 .elementor-heading-title {
	font-size: var(--lt-fs-md);
	line-height: 1.25;
}

/* ---------- Top bar and header ---------- */

.e-con.lt-sec.lt-topbar-bar {
	--padding-top: 0.5rem;
	--padding-bottom: 0.5rem;
	font-size: var(--lt-fs-sm);
}

.lt-topbar-bar .elementor-widget-text-editor {
	color: var(--lt-on-dark);
	white-space: nowrap;
}

.lt-topbar-bar .lt-topbar__open {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* The pager light: on when the hall is open. */
.lt-dot {
	display: inline-block;
	width: 0.55rem;
	height: 0.55rem;
	margin-right: 0.55rem;
	border-radius: 50%;
	background: var(--lt-accent);
	vertical-align: 0.06em;
}

.lt-header {
	border-bottom-color: var(--lt-line);
}

.lt-brand__mark {
	width: 2.3rem;
	height: 2.3rem;
	color: var(--lt-primary);
}

.lt-brand__name {
	font-size: 1.2rem;
	letter-spacing: -0.03em;
}

body .lt-menu a {
	font-weight: 600;
}

/* ---------- Home hero: the hall plan ---------- */

.e-con.lt-hero {
	--padding-top: clamp(2.75rem, 1.6rem + 4.5vw, 5.5rem);
	--padding-bottom: clamp(3rem, 1.8rem + 5vw, 6rem);
}

.lt-hero__title .elementor-heading-title {
	font-size: var(--lt-fs-hero);
	line-height: 1.06;
	letter-spacing: -0.035em;
	max-width: 14ch;
}

/* The plan: walls in ink, stalls in counter white, 1px grid lines between them (the grid gap shows the ink). */
.e-con.lt-plan__floor {
	border: 2px solid var(--lt-ink);
	border-radius: 6px;
	overflow: hidden;
	background: var(--lt-ink);
}

.e-con.lt-plan__row {
	background: var(--lt-ink);
}

.e-con.lt-stall {
	--padding-top: 0.9rem;
	--padding-right: 0.9rem;
	--padding-bottom: 1rem;
	--padding-left: 0.9rem;
	background: var(--lt-paper);
}

.e-con.lt-stall__top {
	--padding-bottom: 0.35rem;
	align-items: flex-start;
}

/* The enamel number plate: a stall identifier. */
.lt-plate .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.45rem;
	border-radius: 6px;
	background: var(--lt-primary);
	color: #FFFFFF;
	font-size: 1.15rem;
	line-height: 1;
	letter-spacing: -0.04em;
	box-shadow: inset 0 0 0 2px var(--lt-primary), inset 0 0 0 3.5px color-mix(in srgb, #FFFFFF 55%, var(--lt-primary));
}

.lt-plate--sm .elementor-heading-title {
	min-width: 2.2rem;
	height: 2.2rem;
	font-size: 0.95rem;
	padding: 0 0.35rem;
	border-radius: 5px;
}

/* The yellow Delivers tag: ink on crane yellow. */
.lt-tag.elementor-widget-text-editor,
.lt-dark .lt-tag.elementor-widget-text-editor {
	color: var(--lt-ink);
}

.lt-tag p {
	display: inline-block;
	margin: 0;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	background: var(--lt-accent);
	color: var(--lt-ink);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.lt-stall__name .elementor-heading-title {
	font-size: 0.98rem;
	line-height: 1.25;
	letter-spacing: -0.03em;
}

.lt-stall__what.elementor-widget-text-editor {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
	line-height: 1.4;
}

.lt-stall__wait.elementor-widget-text-editor {
	margin-top: auto;
	font-size: var(--lt-fs-sm);
	font-weight: 700;
}

/* The aisle: tile floor with the long tables drawn as a dashed outline. */
.e-con.lt-aisle {
	--padding-top: 1.1rem;
	--padding-right: 1.25rem;
	--padding-bottom: 1.1rem;
	--padding-left: 1.25rem;
	background: var(--lt-surface);
	font-size: var(--lt-fs-sm);
}

.lt-aisle .elementor-widget-text-editor {
	color: var(--lt-ink);
	line-height: 1.35;
}

.lt-aisle__door.elementor-widget-text-editor {
	padding-left: 0.7rem;
	border-left: 4px solid var(--lt-primary);
	font-weight: 700;
}

.lt-aisle__tables.elementor-widget-text-editor {
	padding: 0.7rem 1rem;
	border: 1.5px dashed var(--lt-soft);
	border-radius: 999px;
	text-align: center;
}

.lt-aisle__end.elementor-widget-text-editor {
	text-align: right;
	color: var(--lt-soft);
}

.lt-plan__caption.elementor-widget-text-editor {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

/* On the delivery page: kitchens that do not deliver are drawn dashed and quiet. */
.lt-plan--delivery .e-con.lt-plan__floor,
.lt-plan--delivery .e-con.lt-plan__row {
	background: var(--lt-line);
	border-color: var(--lt-line);
}

.lt-plan--delivery .e-con.lt-stall:not(.is-delivers) {
	background: var(--lt-base);
	outline: 1.5px dashed var(--lt-line);
	outline-offset: -6px;
}

.lt-plan--delivery .e-con.lt-stall:not(.is-delivers) .lt-plate .elementor-heading-title {
	background: transparent;
	color: var(--lt-soft);
	box-shadow: inset 0 0 0 1.5px var(--lt-soft);
}

.lt-plan--delivery .e-con.lt-stall.is-delivers {
	box-shadow: inset 0 4px 0 var(--lt-accent);
}

/* One moment: on load the counters open along the north wall, then the south wall. */
@media (prefers-reduced-motion: no-preference) {
	.lt-hero .lt-stall .lt-plate {
		animation: lt-open 0.32s ease-out both;
	}

	.lt-hero .lt-plan__row > .lt-stall:nth-child(2) .lt-plate { animation-delay: 0.05s; }
	.lt-hero .lt-plan__row > .lt-stall:nth-child(3) .lt-plate { animation-delay: 0.1s; }
	.lt-hero .lt-plan__row > .lt-stall:nth-child(4) .lt-plate { animation-delay: 0.15s; }
	.lt-hero .lt-plan__row > .lt-stall:nth-child(5) .lt-plate { animation-delay: 0.2s; }
	.lt-hero .lt-plan__row > .lt-stall:nth-child(6) .lt-plate { animation-delay: 0.25s; }
	.lt-hero .lt-plan__row--south > .lt-stall .lt-plate { animation-delay: 0.3s; }
	.lt-hero .lt-plan__row--south > .lt-stall:nth-child(2) .lt-plate { animation-delay: 0.35s; }
	.lt-hero .lt-plan__row--south > .lt-stall:nth-child(3) .lt-plate { animation-delay: 0.4s; }
	.lt-hero .lt-plan__row--south > .lt-stall:nth-child(4) .lt-plate { animation-delay: 0.45s; }
	.lt-hero .lt-plan__row--south > .lt-stall:nth-child(5) .lt-plate { animation-delay: 0.5s; }
	.lt-hero .lt-plan__row--south > .lt-stall:nth-child(6) .lt-plate { animation-delay: 0.55s; }
}

@keyframes lt-open {
	from {
		opacity: 0;
		translate: 0 4px;
	}
	to {
		opacity: 1;
		translate: 0 0;
	}
}

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

.e-con.lt-hours {
	border-top: 2px solid var(--lt-ink);
}

.e-con.lt-hours__cell {
	--padding-top: 0.9rem;
	--padding-bottom: 0.9rem;
	--padding-right: 1rem;
	border-bottom: 1px solid var(--lt-line);
}

.lt-hours__label {
	font-size: var(--lt-fs-sm);
	color: var(--lt-soft);
}

.lt-hours__time {
	font-size: var(--lt-fs-lg);
	font-weight: 700;
	line-height: 1.15;
}

/* ---------- How the hall works (a real sequence) ---------- */

.e-con.lt-step {
	--padding-top: 1.1rem;
	border-top: 1px solid var(--lt-line);
}

.lt-step__n .elementor-heading-title {
	font-size: var(--lt-fs-xl);
	line-height: 1;
	color: var(--lt-primary);
}

/* ---------- Dish rows and the kitchen directory ---------- */

.e-con.lt-dishes > .e-con:first-child,
.e-con.lt-kitchens > .e-con:first-child {
	border-top: 0;
}

.e-con.lt-dishes,
.e-con.lt-kitchens {
	border-top: 2px solid var(--lt-ink);
}

.e-con.lt-dish,
.e-con.lt-kitchen {
	--padding-top: 0.95rem;
	--padding-bottom: 0.95rem;
}

.lt-dish__name .elementor-heading-title {
	font-family: var(--lt-font-body);
	font-size: var(--lt-fs-md);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.3;
}

.lt-dish__note {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

.lt-dish__price,
.lt-price__amount {
	font-size: var(--lt-fs-md);
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	text-align: right;
}

.lt-kitchen__name .elementor-heading-title {
	font-size: 1.05rem;
	line-height: 1.25;
}

.lt-kitchen__wait,
.lt-kitchen__nodl {
	font-size: var(--lt-fs-sm);
	font-weight: 700;
}

.lt-kitchen__nodl {
	color: var(--lt-soft);
}

.lt-kitchen__diets {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

.lt-kitchen__title .elementor-heading-title {
	font-size: var(--lt-fs-xl);
}

/* ---------- Delivery: the bag tag and zones ---------- */

.e-con.lt-bagtag-wrap {
	align-items: center;
}

.e-con.lt-bagtag {
	--padding-top: 1.25rem;
	--padding-right: 1.4rem;
	--padding-bottom: 1.4rem;
	--padding-left: 1.4rem;
	width: 100%;
	max-width: 25rem;
	background: var(--lt-paper);
	border: 2px solid var(--lt-ink);
	border-radius: 18px 18px 6px 6px;
	rotate: -1.5deg;
}

/* The punched hole the tag hangs from. */
.lt-bagtag__who.elementor-widget-text-editor {
	position: relative;
	padding-right: 2.2rem;
	font-size: var(--lt-fs-sm);
	font-weight: 700;
	color: var(--lt-soft);
}

.lt-bagtag__who::after {
	content: "";
	position: absolute;
	top: 0.1rem;
	right: 0;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	border: 2px solid var(--lt-ink);
	background: var(--lt-base);
}

.lt-bagtag__due {
	font-family: var(--lt-font-display);
	font-size: var(--lt-fs-lg);
	letter-spacing: -0.03em;
	line-height: 1.1;
}

.e-con.lt-bagtag__lines {
	border-top: 1.5px dashed var(--lt-soft);
}

.e-con.lt-bagtag__line {
	--padding-top: 0.7rem;
	--padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--lt-line);
}

.lt-bagtag__line .elementor-widget-text-editor {
	font-size: var(--lt-fs-sm);
	line-height: 1.4;
}

.lt-bagtag__foot.elementor-widget-text-editor {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

.lt-zone__time {
	color: var(--lt-soft);
}

.lt-zone__fee {
	font-size: var(--lt-fs-md);
	font-weight: 700;
	text-align: right;
}

.lt-map img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--lt-line);
	border-radius: 6px;
}

/* ---------- Prices and panels ---------- */

.lt-price__label {
	font-size: var(--lt-fs-base);
	font-weight: 500;
}

.lt-price__note {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

.lt-price__amount a {
	white-space: nowrap;
}

.e-con.lt-panel {
	--padding-top: 1.75rem;
	--padding-bottom: 1.75rem;
	--padding-left: 1.75rem;
	--padding-right: 1.75rem;
	align-self: start;
	background: var(--lt-paper);
	border-top: 3px solid var(--lt-ink);
	border-radius: 0 0 6px 6px;
}

/* ---------- Inner pages ---------- */

.e-con.lt-pagehead {
	--padding-top: clamp(3rem, 2rem + 4vw, 5.5rem);
	--padding-bottom: clamp(2.5rem, 1.5rem + 3vw, 4rem);
	border-bottom: 1px solid var(--lt-line);
}

.lt-pagehead__title .elementor-heading-title {
	font-size: var(--lt-fs-3xl);
	max-width: 20ch;
}

.e-con.lt-facts {
	border-top: 2px solid var(--lt-ink);
	--padding-top: 1.5rem;
}

.e-con.lt-desks {
	border-top: 1px solid var(--lt-line);
}

.e-con.lt-desk {
	--padding-top: 2rem;
	--padding-bottom: 2rem;
	--padding-right: 2rem;
	border-bottom: 1px solid var(--lt-line);
}

.lt-desk a {
	font-weight: 700;
}

/* Call to action band and the traders band */
.lt-cta__title .elementor-heading-title {
	font-size: var(--lt-fs-2xl);
	color: var(--lt-on-dark);
}

/* Primary button on dark: terrazzo fill, night-hall text. */
body .lt-dark .elementor-widget-button.lt-btn--primary .elementor-button {
	background: var(--lt-on-dark);
	color: var(--lt-dark);
}

body .lt-dark .elementor-widget-button.lt-btn--primary .elementor-button:hover {
	background: #FFFFFF;
	color: var(--lt-dark);
}

/* ---------- Request form ---------- */

.e-con.lt-form {
	border: 0;
	border-top: 3px solid var(--lt-ink);
	border-radius: 0 0 6px 6px;
	background: var(--lt-paper);
}

body .lt-form .wpforms-container .wpforms-field-label {
	font-size: 1rem;
	font-weight: 700;
}

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

.e-con.lt-sec.lt-footer {
	--padding-top: 4rem;
	--padding-bottom: 2.5rem;
	border-top: 1px solid color-mix(in srgb, var(--lt-on-dark) 16%, transparent);
}

.lt-footer__brand .elementor-heading-title {
	font-size: 1.4rem;
	color: var(--lt-on-dark);
}

.lt-footer__title .elementor-heading-title {
	font-family: var(--lt-font-ui);
	font-size: var(--lt-fs-base);
	font-weight: 700;
	color: var(--lt-on-dark-soft);
	letter-spacing: 0;
}

.lt-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lt-links li {
	margin: 0 0 0.5rem;
}

.lt-credit-bar {
	border-top: 1px solid color-mix(in srgb, var(--lt-on-dark) 14%, transparent);
}

/* ---------- Blog ---------- */

.lt-posts--grid .lt-post {
	border-top: 2px solid var(--lt-ink);
	padding-top: 1rem;
}

.lt-posts--grid .lt-post.has-img {
	border-top: 0;
	padding-top: 0;
}

/* ---------- Tablet and phones ---------- */

@media (max-width: 1024px) {
	.lt-aisle__end.elementor-widget-text-editor {
		text-align: left;
	}
}

@media (max-width: 767px) {
	.lt-topbar-bar .elementor-widget-text-editor {
		white-space: normal;
	}

	.lt-topbar-bar .lt-topbar__line:not(.lt-topbar__open) {
		display: none;
	}

	.e-con.lt-stall {
		--padding-top: 0.75rem;
		--padding-right: 0.7rem;
		--padding-bottom: 0.8rem;
		--padding-left: 0.7rem;
	}

	.lt-stall__name .elementor-heading-title {
		font-size: 0.9rem;
	}

	.lt-plate .elementor-heading-title {
		min-width: 2.3rem;
		height: 2.3rem;
		font-size: 1rem;
	}

	.lt-plate--sm .elementor-heading-title {
		min-width: 2.1rem;
		height: 2.1rem;
		font-size: 0.9rem;
	}

	.lt-aisle__end.elementor-widget-text-editor {
		text-align: left;
	}

	.lt-aisle__tables.elementor-widget-text-editor {
		border-radius: 18px;
		text-align: left;
	}

	.lt-hours__time {
		font-size: var(--lt-fs-md);
	}

	.e-con.lt-bagtag {
		rotate: 0deg;
		max-width: none;
	}

	.e-con.lt-panel {
		--padding-left: 1.25rem;
		--padding-right: 1.25rem;
	}

	.e-con.lt-kitchen {
		--row-gap: 6px !important;
	}

	.e-con.lt-kitchen > :nth-child(n+3) {
		grid-column: 2;
	}
}
