/*
Theme Name: BapNavi Child
Description: Lightweight child of Hello Elementor for technical enhancements; page design remains in Elementor Free.
Template: hello-elementor
Version: 1.1.1
Text Domain: krg-hello-child
*/

/* Optional motion only. All card content, layout, and colors remain editable in Elementor. */
@media (min-width: 769px) and (prefers-reduced-motion: no-preference) {
	.krg-depth-card {
		transform: perspective(1100px) rotateY(-1.5deg);
		transform-origin: center;
		transition: transform 220ms ease, box-shadow 220ms ease;
	}
	.krg-depth-card:hover,
	.krg-depth-card:focus-within {
		transform: perspective(1100px) rotateY(0deg) translateY(-3px);
		box-shadow: 0 18px 42px rgb(23 26 29 / 16%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.krg-depth-card {
		transform: none !important;
		transition: none !important;
	}
}

/* Functional slideshow behavior; Elementor controls its content and dimensions. */
.krg-auto-carousel {
	position: relative;
	overflow: hidden;
}
.krg-auto-carousel > * {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 260ms ease;
}
.krg-auto-carousel > :first-child {
	opacity: 1;
	visibility: visible;
}
.krg-auto-carousel > .krg-active-slide {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}
.elementor-editor-active .krg-auto-carousel,
.elementor-edit-mode .krg-auto-carousel {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem;
	overflow: visible;
}
.elementor-editor-active .krg-auto-carousel > *,
.elementor-edit-mode .krg-auto-carousel > * {
	position: relative;
	inset: auto;
	opacity: 1;
	visibility: visible;
	z-index: auto;
	transition: none;
}
.krg-auto-carousel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (prefers-reduced-motion: no-preference) {
	.krg-auto-carousel img {
		transform: translate3d(0, var(--krg-parallax-shift, 0px), 0) scale(1.1);
	}
	.krg-parallax-media {
		object-position: center calc(50% + var(--krg-parallax-shift, 0px));
	}
}
@media (prefers-reduced-motion: reduce) {
	.krg-auto-carousel > * { transition: none; }
	.krg-auto-carousel img { transform: none; }
}

/* Only the functional search input and suggestion panel live outside Elementor.
   Its frame, label, placement, and surrounding layout remain Elementor-owned. */
.krg-search-mount:focus-within {
	border-color: var(--krg-accent);
}
.krg-search-form {
	display: flex;
	align-items: center;
	width: 100%;
	gap: 0.5rem;
}
.krg-search-form input {
	min-width: 0;
	flex: 1;
	padding: 0.65rem 0.7rem;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--krg-ink);
	font: inherit;
	font-size: 0.93rem;
}
.elementor .krg-search-form input[type="search"] {
	border: 0;
	box-shadow: none;
}
.krg-search-form input::placeholder {
	color: var(--krg-muted);
	opacity: 1;
}
.krg-search-form button {
	flex: 0 0 auto;
	min-height: 2.4rem;
	padding: 0.45rem 0.9rem;
	border: 0;
	border-radius: 0.2rem;
	background: var(--krg-accent);
	color: var(--krg-white);
	font: inherit;
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
}
.krg-search-form button:focus-visible,
.krg-search-results a:focus-visible {
	outline: 2px solid var(--krg-accent);
	outline-offset: 2px;
}
.krg-search-results {
	position: absolute;
	z-index: 20;
	top: calc(100% + 0.35rem);
	left: 0;
	right: 0;
	max-height: 18rem;
	overflow-y: auto;
	padding: 0.35rem;
	border: 1px solid var(--krg-line);
	border-radius: 0.3rem;
	background: var(--krg-white);
	box-shadow: 0 12px 30px rgb(23 26 29 / 10%);
}
.krg-search-results[hidden] { display: none; }
.krg-search-results a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem;
	color: var(--krg-ink);
	text-decoration: none;
}
.krg-search-results a:hover,
.krg-search-results a:focus-visible { background: var(--krg-paper); }
.krg-search-results small { color: var(--krg-muted); }
.krg-search-results p {
	margin: 0;
	padding: 0.7rem;
	color: var(--krg-muted);
	font-size: 0.85rem;
}
.krg-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Native touch scrolling for Elementor-owned discovery cards. */
@media (max-width: 767px) {
	.elementor .krg-swipe-row {
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		overscroll-behavior-inline: contain;
	}
	.krg-swipe-row > * { scroll-snap-align: start; }
}

/* Map integration only; Elementor owns the map container's size and placement. */
.krg-live-map {
	z-index: 0;
}
.krg-live-map .leaflet-control-attribution {
	font-size: 10px;
}

/* Utility states for the map and the small show-to-staff dialog. */
.krg-map-result-active { outline: 2px solid var(--krg-accent); outline-offset: 2px; }
.krg-visit-tools button:disabled,
.krg-map-focus:disabled { cursor: not-allowed; opacity: 0.45; }
.krg-staff-dialog {
	width: min(90vw, 38rem);
	max-height: 85vh;
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid var(--krg-line);
	background: var(--krg-white);
	color: var(--krg-ink);
	font-family: var(--krg-body);
	box-shadow: 0 20px 70px rgb(23 26 29 / 18%);
}
.krg-staff-dialog::backdrop { background: rgb(23 26 29 / 72%); }
.krg-staff-label { margin: 0 0 1rem; color: var(--krg-accent); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; }
.krg-staff-dialog h2 { margin: 0 0 1rem; font-size: clamp(1.7rem, 5vw, 2.8rem); line-height: 1.2; }
.krg-staff-address { margin: 0 0 2rem; font-size: clamp(1.25rem, 4vw, 2rem); line-height: 1.5; overflow-wrap: anywhere; }
.krg-staff-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.krg-staff-actions button { padding: 0.7rem 1rem; border: 1px solid var(--krg-line); background: var(--krg-white); color: var(--krg-ink); font: inherit; cursor: pointer; }
.krg-staff-actions button:first-child { background: var(--krg-ink); color: var(--krg-white); }
.krg-staff-actions button:focus-visible { outline: 2px solid var(--krg-accent); outline-offset: 2px; }

/* Keep the shared Elementor header steady while guide pages change. */
.elementor .v2-header .v2-navlink {
	transition: color 160ms ease, box-shadow 160ms ease;
}
.elementor .v2-header .v2-navlink[aria-current="page"] {
	color: #b83b35;
	box-shadow: inset 0 -2px #b83b35;
}
.elementor .v2-navlink.krg-search-utility {
	width: 2.75rem;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 0;
	border: 1px solid var(--krg-line, #dde0e3);
	border-radius: .45rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.elementor .v2-navlink.krg-search-utility::before {
	content: "";
	display: block;
	width: 1rem;
	height: 1rem;
	background: currentColor;
	-webkit-mask: url('assets/fa-magnifying-glass.svg') center / contain no-repeat;
	mask: url('assets/fa-magnifying-glass.svg') center / contain no-repeat;
}
.elementor .v2-navlink.krg-search-utility:hover,
.elementor .v2-navlink.krg-search-utility:focus-visible {
	border-color: var(--krg-accent, #b83b35);
}
.elementor .v2-nav .v2-navlink.krg-search-utility {
	position: relative;
	margin-inline-start: 1.5rem;
}
.elementor .v2-nav .v2-navlink.krg-search-utility::after {
	content: "";
	position: absolute;
	inset-inline-start: -0.75rem;
	top: 50%;
	translate: 0 -50%;
	width: 1px;
	height: 1.5rem;
	background: #E9E9E9;
}

/* The visible search dialog is a native Elementor composition. JavaScript
   only supplies its modal state, input, suggestions, and focus handling. */
body.krg-search-open { overflow: hidden; }
body:not(.elementor-editor-active):not(.elementor-edit-mode) .krg-global-search-shell {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(1rem, 8vh, 5rem) 1rem 1rem;
	background: rgb(23 26 29 / 72%);
	overflow-y: auto;
}
body:not(.elementor-editor-active):not(.elementor-edit-mode) .krg-global-search-shell.is-open {
	display: flex;
}
.elementor .krg-global-search-panel {
	position: relative;
	width: min(42rem, 100%);
	padding: clamp(4rem, 8vw, 4.75rem) clamp(1.4rem, 4vw, 2.5rem) clamp(1.4rem, 4vw, 2.5rem) !important;
	border-radius: 1rem;
	background: var(--krg-white, #fff);
	box-shadow: 0 24px 80px rgb(0 0 0 / 25%);
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 1rem;
}
.elementor .krg-global-search-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: auto !important;
	min-width: 0 !important;
	max-width: calc(100% - 2rem);
	padding: .65rem .85rem !important;
	font-size: .8rem !important;
	white-space: nowrap;
	display: inline-flex !important;
	margin: 0;
}
.elementor .krg-search-mount {
	position: relative;
	width: 100%;
	min-width: 0;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
}
.elementor .krg-search-mount .krg-search-form {
	width: 100%;
}
.elementor .krg-global-search-panel .krg-search-results {
	position: static;
	max-height: min(52vh, 24rem);
	margin-top: .5rem;
}
.elementor-editor-active .krg-global-search-shell,
.elementor-edit-mode .krg-global-search-shell {
	border: 2px dashed var(--krg-accent, #b83b35);
	padding: 1rem;
}

/* Let the browser present each fully rendered page in one frame. Full-page
   snapshots and a second content fade made navigation appear doubled on phones
   and required extra compositing work on slower devices. */

/* Filtered views arrive with their selected state in the HTML response. Keep
   hidden Elementor sections out of layout from the first frame onward. */
.elementor .v2-section[hidden] { display: none !important; }
body:not(.elementor-editor-active):not(.elementor-edit-mode) .v2-selected-area:not(.is-selected),
body.v3-food-selected:not(.elementor-editor-active):not(.elementor-edit-mode) .v2-food-detail:not(.is-selected) {
	display: none !important;
}

/* Structured profile Paragraph widgets stay editable in Elementor while the
   frontend consumes them as the normalized discovery index. */
body:not(.elementor-editor-active):not(.elementor-edit-mode) .krg-contract-fields {
	display: none !important;
}
body:not(.elementor-editor-active):not(.elementor-edit-mode) :is(
	.krg-card-key, .krg-card-city, .krg-card-area, .krg-card-food,
	.krg-card-features, .krg-card-price-min, .krg-card-price-max,
	.krg-card-verification-status
) { display: none !important; }
.elementor-editor-active .krg-contract-fields,
.elementor-edit-mode .krg-contract-fields {
	border: 2px dashed #b83b35;
	padding: 1rem;
}

.krg-profile-actions .v2-row {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}
.krg-profile-actions button:disabled,
.krg-profile-actions [disabled] {
	cursor: not-allowed;
	opacity: 1;
	background: transparent;
	border: 1px solid var(--krg-line, #dde0e3) !important;
	color: #8d8d92;
}
.krg-profile-actions button:disabled::after,
.krg-profile-actions [disabled]::after {
	content: " · not offered";
	font-weight: 500;
	text-transform: none;
	font-size: .82rem;
}
/* A rarely needed action must never carry the primary accent. */
.elementor .v2-button.krg-report-closure {
	background: #fff;
	border: 1px solid var(--krg-line, #dde0e3);
	color: var(--krg-ink, #171a1d);
}
.elementor .v2-button.krg-report-closure:hover,
.elementor .v2-button.krg-report-closure:focus-visible {
	background: #fff;
	border-color: var(--krg-accent, #b83b35);
	color: var(--krg-accent, #b83b35);
}

/* Profile page standard (code layer over the krg-field mounts). */

/* The raw data mounts duplicated at the foot of every profile page are for
   machine reads only; the visible page works from structured renderings.
   JS reads textContent, so display:none is safe. */
.elementor main [class*="krg-field-"] { display: none !important; }

.krg-standard-subtitle {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
}
.krg-standard-pill {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border: 0;
	background: transparent;
	color: var(--krg-ink, #171a1d);
	font-size: .88rem;
	font-weight: 700;
	letter-spacing: -.01em;
	padding: 0;
	white-space: nowrap;
}
.krg-standard-dot {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #9a3f38;
	flex: 0 0 auto;
}
.krg-standard-pill.is-open { color: var(--krg-ink, #171a1d); border-color: transparent; background: transparent; }
.krg-standard-pill.is-open .krg-standard-dot { background: #2e7d4f; }
.krg-standard-checked {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	border: 0;
	font-size: .8rem;
	font-weight: 600;
	color: var(--krg-muted, #5d6369);
	background: transparent;
	padding: 0;
	white-space: nowrap;
}
.krg-standard-checked::before {
	content: "✓";
	font-weight: 800;
	color: var(--krg-accent, #b83b35);
}
.krg-standard-caveat {
	font-size: .78rem;
	font-weight: 500;
	color: var(--krg-muted, #5d6369);
}
.krg-standard-plan-note { color: var(--krg-muted, #5d6369); }
.krg-standard-moremeta { color: var(--krg-muted, #5d6369); }

.krg-standard-actions {
	margin-block-start: 1rem !important;
}
.krg-standard-glance { display: grid; gap: .55rem; }
.krg-standard-fact { margin: 0; font-weight: 650; color: var(--krg-ink, #171a1d); }
.krg-standard-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.krg-standard-tag {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--krg-line, #e2e5e8);
	border-radius: 999px;
	background: var(--krg-paper, #f5f6f7);
	color: var(--krg-muted, #5d6369);
	font-size: .72rem;
	font-weight: 650;
	padding: .15rem .6rem;
	white-space: nowrap;
}
.krg-standard-details { border-block-start: 1px solid var(--krg-line, #e2e5e8); }
.krg-standard-details summary {
	cursor: pointer;
	font-size: .78rem;
	font-weight: 650;
	color: var(--krg-muted, #5d6369);
	padding: .3rem 0;
}
.krg-standard-details p {
	margin: .3rem 0 .45rem;
	font-size: .85rem;
	color: var(--krg-muted, #5d6369);
	line-height: 1.55;
}
.krg-standard-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .3rem;
}
.krg-standard-menu li {
	display: flex;
	align-items: baseline;
	gap: .75rem;
	border-bottom: 1px solid var(--krg-line, #e2e5e8);
	padding: .35rem 0 .4rem;
}
.krg-standard-menu li span:first-child { min-width: 0; }
.krg-standard-price {
	margin-inline-start: auto;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}
.krg-standard-record { display: flex; flex-wrap: wrap; gap: .4rem; }
.krg-standard-more { border-block-start: 1px solid var(--krg-line, #dde0e3); }
.krg-standard-moregrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .8rem;
}
.krg-standard-morecard--text {
	display: grid;
	gap: .25rem;
	align-content: center;
	border: 1px solid var(--krg-line, #dde0e3);
	border-radius: .6rem;
	background: #fff;
	padding: .85rem 1rem;
	text-decoration: none;
	color: var(--krg-ink, #171a1d);
	transition: box-shadow 160ms ease, border-color 160ms ease;
}
.krg-standard-morecard--text:hover,
.krg-standard-morecard--text:focus-visible {
	border-color: var(--krg-accent, #b83b35);
	box-shadow: 0 12px 32px rgb(184 59 53 / .08);
}
.krg-standard-morename { font-weight: 700; font-size: .95rem; }
.krg-standard-moremeta { font-size: .8rem; color: var(--krg-muted, #5d6369); }
/* photo cards: the listing card classes carry every visual rule; only the
   grid geometry differs (three columns, portrait-friendly ratio). */
.krg-standard-moregrid .krg-standard-morecard.v2-area-card {
	height: auto;
	aspect-ratio: 4 / 3;
}
.krg-standard-moregrid .krg-standard-morecard.v2-area-card .v2-stack {
	padding: 1rem;
}
.krg-more-area {
	position: absolute;
	inset-block-start: .55rem;
	inset-inline-start: .55rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	background: rgb(255 255 255 / .92);
	color: var(--krg-ink, #171a1d);
	font-size: .7rem;
	font-weight: 700;
	padding: .22rem .6rem;
	white-space: nowrap;
	backdrop-filter: blur(4px);
}
.krg-standard-stickybar { display: none; }

@media (max-width: 767px) {
	.krg-standard-stickybar {
		display: flex;
		position: fixed;
		inset-inline: 1rem auto;
		inset-block-end: calc(4.6rem + env(safe-area-inset-bottom, 0px));
		inset-block-start: auto;
		z-index: 60;
		width: min(22rem, calc(100vw - 2rem));
		background: #fff;
		border: 1px solid var(--krg-line, #e2e5e8);
		border-radius: .8rem;
		box-shadow: 0 16px 48px rgb(20 20 20 / .22);
		padding: .35rem;
	}
	.krg-standard-stickybar > * {
		flex: 1 1 auto;
		display: inline-flex;
		justify-content: center;
		align-items: center;
		min-height: 2.75rem;
		border-radius: .55rem;
		font-weight: 700;
		font-size: .9rem;
		border: 0;
		cursor: pointer;
	}
	.krg-standard-stickydir { background: var(--krg-accent, #b83b35); color: #fff; text-decoration: none; }
	.krg-standard-moregrid { grid-template-columns: 1fr; }
}
.v3-saved-open[aria-current="page"] { color: #b83b35; box-shadow: inset 0 -2px #b83b35; }
.krg-action-dialog {
	max-width: min(32rem, calc(100vw - 2rem));
	border: 0;
	border-radius: 1rem;
	padding: 1.5rem;
	white-space: pre-line;
	box-shadow: 0 24px 80px rgb(20 20 20 / .25);
}
.krg-action-dialog::backdrop { background: rgb(18 18 18 / .55); }
.krg-action-dialog > * + * { margin-top: 1rem; }
.krg-action-dialog .v2-button { display: inline-flex; margin-right: .75rem; }

.krg-catalog-filters {
	display: grid;
	grid-template-columns: repeat(5, minmax(8rem, 1fr));
	gap: .75rem;
	align-items: end;
}
.krg-catalog-filters > label:not(.krg-filter-checkbox) {
	display: grid;
	gap: .35rem;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
}
.krg-catalog-filters select {
	min-height: 2.75rem;
	border: 1px solid #cfc7bb;
	border-radius: .65rem;
	background: #fff;
	color: #241f1a;
	padding: .45rem .7rem;
}
.krg-filter-checkbox {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 2.25rem;
	font-size: .9rem;
}
.krg-filter-reset { align-self: center; font-weight: 700; }
.krg-filter-status { grid-column: 1 / -1; margin: .85rem 0 0; }
.krg-filter-status.is-empty { color: #8a2f2b; font-weight: 700; }
.krg-filter-chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 0; }
.krg-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	border: 1px solid #cfc7bb;
	border-radius: 999px;
	background: #fff;
	color: #241f1a;
	font-size: .85rem;
	padding: .25rem .4rem .25rem .75rem;
}
.krg-filter-chip a {
	display: inline-grid;
	place-items: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: #eceae5;
	line-height: 1;
	text-decoration: none;
	color: #241f1a;
}
.krg-filter-chip a:hover { background: #d9d0c6; }

.krg-saved-page-mount,
.v3-saved-list {
	display: grid;
	gap: .75rem;
}
.krg-saved-page-mount .v3-saved-row {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 1rem;
	border: 1px solid #ded7cc;
	border-radius: .85rem;
	padding: .9rem 1rem;
}
.krg-saved-page-mount .v3-saved-row > a { color: inherit; text-decoration: none; }
.v3-saved-words { display: grid; gap: .15rem; }
.v3-saved-words small { color: #786e62; font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.v3-saved-words strong { font-size: 1rem; }
.v3-saved-words > span { color: #665d54; font-size: .85rem; }
.krg-saved-page-empty { text-align: center; padding: 2rem; }

@media (max-width: 1024px) {
	.krg-catalog-filters { grid-template-columns: repeat(3, minmax(8rem, 1fr)); }
}
@media (max-width: 767px) {
	html,
	body { max-width: 100%; overflow-x: clip; }
	.krg-catalog-filters { grid-template-columns: minmax(0, 1fr); width: 100%; }
	.krg-catalog-filters > *,
	.krg-catalog-filters select { min-width: 0; width: 100%; }
	.elementor .v2-bottomnav {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		left: 0 !important;
		right: 0 !important;
	}
	.elementor .v2-bottomnav .v2-bottomlink {
		min-width: 0 !important;
		width: auto !important;
		padding-inline: .2rem !important;
	}
	.krg-profile-actions .v2-row > * { flex: 1 1 calc(50% - .75rem); }
}
@media (max-width: 420px) {
	.krg-catalog-filters { grid-template-columns: 1fr; }
	.krg-profile-actions .v2-row > * { flex-basis: 100%; }
}

/* The Areas page ends its shortcut grid without a separator. */
body.page-id-8 .elementor .v2-shortcuts {
	border-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .v2-header .v2-navlink { transition: none; }
}


/* At-a-glance verdict cards: one disciplined grid. */
.krg-glance-wrap {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .8rem;
}
.krg-glance-card {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	min-width: 0;
	min-height: 0;
}
.krg-glance-card--full { grid-column: 1 / -1; }
.krg-glance-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .8rem;
	grid-column: 1 / -1;
}
@media (max-width: 640px) {
	.krg-glance-row { grid-template-columns: 1fr; }
}
.krg-glance-content { display: grid; gap: .45rem; align-content: start; }
.krg-glance-verdict {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem;
}
.krg-glance-verdict strong {
	font-size: 1rem;
	line-height: 1.2;
	color: var(--krg-ink, #171a1d);
	letter-spacing: -.01em;
}
.krg-glance-chip {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	padding: .18rem .6rem;
	white-space: nowrap;
}
.krg-glance-chip--ok { color: #1d6b3f; background: #eaf6ee; border: 1px solid #cfe7d8; }
.krg-glance-chip--warn { color: #7a4f0d; background: #faf3e3; border: 1px solid #ecdfc0; }
.krg-glance-support {
	margin: 0;
	font-size: .88rem;
	font-weight: 400;
	color: var(--krg-muted, #5d6369);
	line-height: 1.5;
}
.krg-glance-addr { color: var(--krg-ink, #171a1d); font-weight: 500; font-size: .95rem; }
.krg-glance-addr-ko { font-size: .84rem; }
.krg-glance-footer {
	margin-block-start: auto;
	padding-block-start: .7rem;
	border-block-start: 1px solid var(--krg-line, #e2e5e8);
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	align-items: center;
}
.krg-glance-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.krg-glance-action {
	display: inline-flex;
	align-items: center;
	min-height: 2.35rem;
	border: 1px solid var(--krg-line, #dde0e3);
	border-radius: .45rem;
	background: #fff;
	color: var(--krg-ink, #171a1d);
	font-size: .85rem;
	font-weight: 650;
	padding: .3rem .85rem;
	cursor: pointer;
}
.krg-glance-action:hover,
.krg-glance-action:focus-visible { border-color: var(--krg-accent, #b83b35); color: var(--krg-accent, #b83b35); }

@media (max-width: 900px) {
	.krg-glance-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.krg-glance-wrap { grid-template-columns: 1fr; }
}


/* "Before you go" FAQ: one accordion style for open and closed rows.
   Native <details> means the closed panel carries zero padding, margin
   or min-height — nothing "failed to load" can remain. */
.krg-standard-faqlist {
	margin: .5rem 0 0;
	border-block-end: 1px solid var(--krg-line, var(--krg-line, #e2e5e8));
}
.krg-standard-faq {
	border-block-start: 1px solid var(--krg-line, var(--krg-line, #e2e5e8));
	padding: 0;
	margin: 0;
	min-height: 0;
	background: transparent;
	transition: background-color 160ms ease;
}
.krg-standard-faq:hover { background: rgba(36, 31, 26, .025); }
.krg-standard-faq[open] { background: rgba(36, 31, 26, .03); }
.krg-standard-faq summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	min-height: 0;
	padding: 1.25rem .5rem;
	cursor: pointer;
	font-size: 1.05rem;   /* same size and weight open or closed */
	font-weight: 700;
	color: var(--krg-ink, var(--krg-ink, #171a1d));
	line-height: 1.35;
}
.krg-standard-faq summary::-webkit-details-marker { display: none; }
.krg-standard-faq summary:focus-visible {
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: -2px;
}
.krg-standard-faqmark {
	flex: 0 0 auto;
	width: .6rem;
	height: .6rem;
	margin-inline-end: .3rem;
	font-size: 0;          /* hide the text glyph; the chevron is drawn below */
	border-inline-end: 2px solid var(--krg-muted, #5d6369);
	border-block-end: 2px solid var(--krg-muted, #5d6369);
	transform: rotate(45deg);
	transition: transform 180ms ease, border-color 180ms ease;
}
.krg-standard-faq summary:hover .krg-standard-faqmark { border-color: var(--krg-ink, var(--krg-ink, #171a1d)); }
.krg-standard-faq[open] > summary .krg-standard-faqmark {
	transform: rotate(-135deg);
	border-color: var(--krg-accent, #b83b35);
}
.krg-standard-answer { padding: 0 .5rem 1.35rem; margin: 0; max-width: 46rem; }
.krg-standard-answer p {
	margin: 0;
	padding: 0;
	font-size: .95rem;
	font-weight: 400;
	color: var(--krg-muted, var(--krg-muted, #5d6369));
	line-height: 1.65;
}
.krg-standard-answer a.krg-standard-faqlink {
	display: inline-block;
	margin-block-start: .85rem;
	padding: .55rem 1rem;
	border-radius: .4rem;
	background: var(--krg-accent, #b83b35);
	color: var(--krg-white, #fff);
	font-size: .85rem;
	font-weight: 700;
	text-decoration: none;
}
.krg-standard-answer a.krg-standard-faqlink:hover { filter: brightness(.92); }
@media (max-width: 640px) {
	.krg-standard-faq summary { padding: 1rem .25rem; font-size: 1rem; }
	.krg-standard-answer { padding: 0 .25rem 1.15rem; }
}

/* Profile map embed + photo cross-links. */
.krg-profile-map {
	height: 420px;
	border: 1px solid var(--krg-line, #dde0e3);
	border-radius: .7rem;
	overflow: hidden;
	margin-block-start: .2rem;
}
.krg-profile-map .leaflet-container { height: 100%; font: inherit; }
.krg-standard-tag--link {
	text-decoration: none;
	color: var(--krg-accent, #b83b35);
	border-color: #e4d6d4;
	background: #fdf8f7;
}
.krg-standard-tag--link:hover,
.krg-standard-tag--link:focus-visible { border-color: var(--krg-accent, #b83b35); }


/* ==========================================================================
   Profile standard — design polish (pilot only: body.krg-pilot).
   Uses the site tokens (--krg-ink / muted / line / paper / accent).
   ========================================================================== */

/* Breadcrumb: the save control's wrapper is a block <div> inside the <p>, which
   pushed the current page onto its own line. Keep one wrapping row and park the
   heart on the right, vertically centred. */
body.krg-pilot .elementor .v2-crumb {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding-inline-end: 3.5rem;
}
body.krg-pilot .elementor .v2-crumb .v3-save-wrap { display: contents; }
body.krg-pilot .elementor .v2-crumb .v3-save {
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

/* Intro status row: one tidy, wrapping line. */
body.krg-pilot .krg-standard-subtitle { row-gap: .35rem; column-gap: .9rem; }
body.krg-pilot .krg-standard-caveat { font-size: .8rem; }

/* Quick actions: a compact toolbar, not a second page section. */
body.krg-pilot .krg-standard-actions { padding-block: .75rem 1.5rem; gap: .75rem; }
body.krg-pilot .krg-standard-actions :is(h2, h3) {
	font-family: var(--krg-body, "DM Sans", system-ui, sans-serif);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--krg-muted, #5d6369);
}

/* At-a-glance cards: one hairline above the source badges, no stacked dividers. */
body.krg-pilot .krg-glance-card .krg-standard-details { border-block-start: 0; }
body.krg-pilot .krg-glance-card .krg-standard-details summary { font-size: .8rem; padding: .2rem 0; }
body.krg-pilot .krg-glance-footer { padding-block-start: .75rem; }
body.krg-pilot .krg-standard-menu li { border-bottom-color: var(--krg-line, #e2e5e8); }
body.krg-pilot .krg-standard-tag { border-color: var(--krg-line, #e2e5e8); }

/* Visible keyboard focus on every pilot control. */
body.krg-pilot :is(.krg-glance-action, .krg-standard-details summary, .krg-standard-morecard):focus-visible {
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: 2px;
}

/* Footer: align with the page gutter and give the copyright room. */
body.krg-pilot footer.v2-footer {
	padding-inline: max(2rem, calc((100% - 76rem) / 2 + 2rem));
}
body.krg-pilot footer.v2-footer > p { margin-block-start: 1rem; box-sizing: border-box; }

@media (max-width: 767px) {
	/* Quick actions as a 2-up grid instead of four full-width red bars. */
	body.krg-pilot .krg-profile-actions .v2-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .6rem;
	}
	body.krg-pilot .krg-profile-actions .v2-row > * { flex: none; min-width: 0; }
	body.krg-pilot .krg-profile-actions .v2-row > * > * { width: 100%; }
	/* The sticky directions bar only appears once the page's own actions have
	   scrolled out of view, so it never covers them. */
	body.krg-pilot .krg-standard-stickybar {
		opacity: 0;
		visibility: hidden;
		transform: translateY(.5rem);
		transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
	}
	body.krg-pilot .krg-standard-stickybar.is-visible {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition-delay: 0s;
	}
	body.krg-pilot footer.v2-footer { padding-inline: 0; }
	body.krg-pilot footer.v2-footer > p { padding-inline: 1rem; }
	/* Related-restaurant cards: wide, not tall, when stacked. */
	body.krg-pilot .krg-standard-moregrid .krg-standard-morecard.v2-area-card { aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) {
	body.krg-pilot .krg-standard-stickybar,
	body.krg-pilot .krg-standard-faq,
	body.krg-pilot .krg-standard-faqmark { transition: none; }
}

/* ==========================================================================
   Profile standard — UI refinement pass 2 (pilot only).
   ========================================================================== */

/* One typeface for every pilot component: the theme's buttons/links were
   falling back to the system font. */
body.krg-pilot :is(
	.krg-glance-action, .krg-glance-chip, .krg-standard-tag, .krg-standard-details,
	.krg-standard-pill, .krg-standard-checked, .krg-standard-caveat, .krg-standard-faq,
	.krg-standard-menu, .krg-more-area, .krg-standard-morecard
) { font-family: var(--krg-body, "DM Sans", system-ui, sans-serif); }

/* Reading comfort: body copy never runs the full 72rem. */
body.krg-pilot .krg-standard-prose { max-width: 68ch; }

/* Page title: a touch more presence, tighter tracking. */
body.krg-pilot main .v2-h1 {
	font-size: clamp(2rem, 1.4rem + 2.2vw, 2.85rem);
	line-height: 1.08;
	letter-spacing: -.025em;
}
body.krg-pilot main h2.v2-h2 { letter-spacing: -.02em; }

/* Quick actions: one primary, the rest quiet. */
body.krg-pilot .elementor .krg-profile-actions .v2-button {
	transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}
body.krg-pilot .elementor .krg-profile-actions .v2-button.krg-save-restaurant:not(:disabled):hover {
	background: #a2312c;
	border-color: #a2312c;
	box-shadow: 0 6px 18px rgb(184 59 53 / .28);
}
body.krg-pilot .elementor .krg-profile-actions .v2-button:is(.krg-show-to-taxi, .krg-reservation-action) {
	background: var(--krg-white, #fff);
	border: 1px solid var(--krg-line, #e2e5e8);
	color: var(--krg-ink, #171a1d);
}
body.krg-pilot .elementor .krg-profile-actions .v2-button:is(.krg-show-to-taxi, .krg-reservation-action):hover,
body.krg-pilot .elementor .krg-profile-actions .v2-button:is(.krg-show-to-taxi, .krg-reservation-action):focus-visible {
	border-color: var(--krg-accent, #b83b35);
	color: var(--krg-accent, #b83b35);
	background: var(--krg-white, #fff);
}

/* Glance-card buttons: the theme's pink is gone; site accent on interaction only. */
body.krg-pilot .krg-glance-action {
	min-height: 2.75rem;
	padding-inline: 1rem;
	background: var(--krg-white, #fff);
	color: var(--krg-ink, #171a1d);
	border: 1px solid var(--krg-line, #e2e5e8);
	border-radius: .5rem;
	font-size: .88rem;
	font-weight: 650;
	line-height: 1.2;
	transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease;
}
body.krg-pilot .krg-glance-action:hover,
body.krg-pilot .krg-glance-action:focus-visible {
	background: var(--krg-white, #fff);
	color: var(--krg-accent, #b83b35);
	border-color: var(--krg-accent, #b83b35);
}

/* Glance cards: a hair of depth, consistent radius. */
body.krg-pilot .krg-glance-card { box-shadow: none; }

/* Source chips: neutral link chips with an outbound cue, not alarm-red. */
body.krg-pilot .krg-standard-tag--link {
	background: var(--krg-white, #fff);
	color: var(--krg-ink, #171a1d);
	border: 1px solid var(--krg-line, #e2e5e8);
	text-decoration: none;
	min-height: 1.9rem;
	padding: .2rem .75rem;
	font-size: .78rem;
	transition: border-color 150ms ease, color 150ms ease;
}
body.krg-pilot .krg-standard-tag--link::after {
	content: "\2197";
	margin-inline-start: .35rem;
	color: var(--krg-muted, #5d6369);
	font-size: .85em;
}
body.krg-pilot .krg-standard-tag--link:hover,
body.krg-pilot .krg-standard-tag--link:focus-visible {
	color: var(--krg-accent, #b83b35);
	border-color: var(--krg-accent, #b83b35);
}

/* "Sources" / "Full menu" disclosures: same chevron language as the FAQ,
   with a comfortable hit area. */
body.krg-pilot .krg-standard-details summary {
	display: flex;
	align-items: center;
	gap: .5rem;
	min-height: 2.25rem;
	list-style: none;
	cursor: pointer;
}
body.krg-pilot .krg-standard-details summary::-webkit-details-marker { display: none; }
body.krg-pilot .krg-standard-details summary::before {
	content: "";
	flex: 0 0 auto;
	width: .42rem;
	height: .42rem;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: rotate(-45deg);
	transition: transform 160ms ease;
}
body.krg-pilot .krg-standard-details[open] > summary::before { transform: rotate(45deg); }

@media (max-width: 767px) {
	body.krg-pilot .krg-standard-details summary { min-height: 2.75rem; }
	body.krg-pilot .krg-glance-action { flex: 1 1 calc(50% - .5rem); justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	body.krg-pilot .krg-standard-details summary::before,
	body.krg-pilot .krg-glance-action,
	body.krg-pilot .krg-standard-tag--link { transition: none; }
}


/* Skip link: hidden until focused. */
.krg-skip-link {
	position: fixed;
	inset-block-start: .75rem;
	inset-inline-start: .75rem;
	z-index: 100;
	padding: .65rem 1rem;
	border-radius: .45rem;
	background: var(--krg-ink, #171a1d);
	color: #fff;
	font: 600 .9rem/1.2 var(--krg-body, "DM Sans", system-ui, sans-serif);
	text-decoration: none;
	transform: translateY(-200%);
	transition: transform .2s ease;
}
.krg-skip-link:focus-visible {
	transform: translateY(0);
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: 2px;
}
main:focus { outline: none; }

/* Footer legal link: inherits the copyright line, underlined so it reads as a link. */
.krg-footer-legal { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.krg-footer-legal:hover { color: var(--krg-accent, #b83b35); }
.krg-footer-legal:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 2px; border-radius: 2px; }

/* Display headings: Newsreader with a real serif fallback. Elementor's class editor
   quotes a multi-font stack as one invalid name, so the stack and weight live here. */
body .elementor :is(.v2-h1, .v2-h2) {
	font-family: var(--krg-display, Newsreader), Georgia, "Times New Roman", serif;
	font-weight: 600;
	font-optical-sizing: auto;
}

/* ==========================================================================
   Design pass (Oct 2026). One block so it is easy to find and revert.
   ========================================================================== */

/* -- Headings: every page title and section head uses the display serif. -- */
body .elementor main :is(h1, h2):not(.v2-h3):not(.krg-standard-actions *) {
	font-family: var(--krg-display, Newsreader), Georgia, "Times New Roman", serif;
	font-weight: 600;
	font-optical-sizing: auto;
	text-wrap: balance;
}
/* Section heads that were never given the v2-h2 class (e.g. "Busan areas"). */
body .elementor main h2:not([class*="v2-"]) {
	font-size: 1.85rem;
	line-height: 1.15;
	letter-spacing: -.015em;
	color: var(--krg-ink, #171a1d);
}
@media (max-width: 767px) {
	body .elementor main h2:not([class*="v2-"]) { font-size: 1.5rem; }
}

/* -- Section head: keep the heading on one line, description beside it. -- */
body .elementor .v2-sectionhead { align-items: baseline; }
body .elementor .v2-sectionhead > :is(h2, h3) { flex: 0 0 auto; }
body .elementor .v2-sectionhead:has(> h2 + p) { flex-direction: column; align-items: flex-start; gap: .35rem; }
body .elementor .v2-sectionhead > h2 + p { max-width: 62ch; text-align: left; }
@media (max-width: 767px) {
	body .elementor .v2-sectionhead { flex-direction: column; align-items: flex-start; gap: .35rem; }
	body .elementor .v2-sectionhead > h2 + p { text-align: left; max-width: none; }
}

/* -- Footer: same wordmark as the header, aligned to the page gutter on every page. -- */
body .elementor footer.v2-footer {
	padding-inline: max(2rem, calc((100% - 76rem) / 2 + 2rem));
}
body .elementor footer.v2-footer .v2-brand-text {
	font-family: var(--krg-body, "DM Sans", system-ui, sans-serif);
	font-weight: 800;
	letter-spacing: .1em;
}
body .elementor footer.v2-footer > p {
	margin-block-start: 1.25rem;
	box-sizing: border-box;
	color: var(--krg-muted, #5d6369);
}
@media (max-width: 767px) {
	body .elementor footer.v2-footer { padding-inline: 1rem; }
}

/* Card rows share the same columns; ui-consistency.css owns breakpoints. */

/* -- Cards without a photo: a warm designed fallback, not a flat dark box. -- */
.elementor :is(.v2-area-card, .v2-food-card) {
	background-color: #1f2326;
	background-image:
		radial-gradient(120% 90% at 12% 0%, rgb(184 59 53 / .38) 0%, transparent 60%),
		linear-gradient(160deg, #2b2623 0%, #1c1f23 100%);
}

/* -- Restaurant filters: selects in a row, toggles as chips. -- */
body .elementor .krg-catalog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: flex-end;
}
body .elementor .krg-catalog-filters > label:not(.krg-filter-checkbox) { flex: 1 1 9.5rem; min-width: 0; }
body .elementor .krg-catalog-filters > :is(.krg-filter-status, .krg-filter-chips) { flex: 0 0 100%; }
body .elementor .krg-catalog-filters select {
	border-color: var(--krg-line, #e2e5e8);
	border-radius: .5rem;
	transition: border-color .2s ease, box-shadow .2s ease;
}
body .elementor .krg-catalog-filters select:hover { border-color: var(--krg-accent, #b83b35); }
body .elementor .krg-catalog-filters select:focus-visible {
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: 2px;
}
body .elementor .krg-filter-checkbox {
	position: relative;
	min-height: 2.5rem;
	padding: .4rem .95rem;
	border: 1px solid var(--krg-line, #e2e5e8);
	border-radius: 999px;
	background: #fff;
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	user-select: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
}
body .elementor .krg-filter-checkbox:hover { border-color: #cc8e89; }
body .elementor .krg-filter-checkbox:active { transform: scale(.98); }
body .elementor .krg-filter-checkbox input {
	position: absolute;
	inset: 0;
	opacity: 0;
	margin: 0;
	cursor: pointer;
}
body .elementor .krg-filter-checkbox:has(input:checked) {
	background: #fbefed;
	border-color: #cc8e89;
	color: #a3342f;
}
body .elementor .krg-filter-checkbox:has(input:focus-visible) {
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: 2px;
}
body .elementor .krg-filter-reset {
	align-self: center;
	color: var(--krg-accent, #b83b35);
	text-underline-offset: 3px;
}
@media (max-width: 767px) {
	body .elementor .krg-catalog-filters > label:not(.krg-filter-checkbox) { flex: 1 1 calc(50% - .75rem); }
	body .elementor .krg-catalog-filters > .krg-filter-checkbox { width: auto; flex: 0 0 auto; }
	body .elementor .krg-catalog-filters > .krg-filter-reset { width: auto; }
}

/* -- Map page: the map is the page, so give it room. -- */
.page-id-13 .krg-live-map.v2-live-map {
	height: clamp(26rem, 68vh, 46rem);
	min-height: 26rem;
}

/* ==========================================================================
   Restaurant profile polish (pilot standard). Scoped to body.krg-pilot.
   ========================================================================== */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
#krg-plan { scroll-margin-block-start: 5rem; }

/* -- Header: name, Korean name, then one calm status row. -- */
body.krg-pilot main > .v2-section:first-child { padding-block-end: .75rem; }
body.krg-pilot .krg-standard-ko {
	margin: .15rem 0 .6rem;
	font-size: 1.15rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--krg-muted, #5d6369);
}
body.krg-pilot .krg-standard-subtitle {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .7rem;
}
body.krg-pilot .krg-standard-meta {
	font-size: 1rem;
	color: var(--krg-muted, #5d6369);
	font-variant-numeric: tabular-nums;
}
body.krg-pilot .krg-standard-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .9rem;
}
body.krg-pilot .krg-standard-pill {
	padding: .32rem .8rem .32rem .7rem;
	border: 1px solid #ecdfc0;
	border-radius: 999px;
	background: #faf3e3;
	color: #7a4f0d;
	font-size: .84rem;
}
body.krg-pilot .krg-standard-pill.is-open {
	border-color: #cfe7d8;
	background: #eaf6ee;
	color: #1d6b3f;
}
body.krg-pilot .krg-standard-pill.is-open .krg-standard-dot { background: #2e7d4f; }
body.krg-pilot .krg-standard-checked,
body.krg-pilot .krg-standard-caveat { font-size: .82rem; }

/* -- Actions: Directions is the one primary; the rest are quiet. -- */
body.krg-pilot .krg-standard-actions :is(h2, h3) {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
body.krg-pilot .krg-standard-actions { padding-block: .35rem 1rem; }
/* Save lives on the heart beside the breadcrumb, the taxi card sits with the
   address, and an unavailable reservation says nothing. */
body.krg-pilot .krg-standard-actions .krg-save-restaurant,
body.krg-pilot .krg-standard-actions .krg-show-to-taxi,
body.krg-pilot .krg-standard-actions button:disabled { display: none; }
body.krg-pilot .elementor .krg-standard-directions {
	background: var(--krg-accent, #b83b35);
	border: 1px solid var(--krg-accent, #b83b35);
	color: #fff;
	transition: background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
body.krg-pilot .elementor .krg-standard-directions::after { content: "\2193"; font-weight: 700; }
body.krg-pilot .elementor .krg-standard-directions:hover,
body.krg-pilot .elementor .krg-standard-directions:focus-visible {
	background: #a2312c;
	border-color: #a2312c;
	color: #fff;
	box-shadow: 0 6px 18px rgb(184 59 53 / .28);
}
body.krg-pilot .elementor .krg-standard-directions:active { transform: scale(.98); }
body.krg-pilot .elementor .krg-directions-nav {
	background: var(--krg-accent, #b83b35);
	border-color: var(--krg-accent, #b83b35);
	color: #fff;
}
body.krg-pilot .elementor .krg-directions-nav:hover,
body.krg-pilot .elementor .krg-directions-nav:focus-visible {
	background: #a2312c;
	border-color: #a2312c;
	color: #fff;
}

/* -- Closure report: a quiet line beside the sources. -- */
body.krg-pilot .krg-standard-report {
	margin: .9rem 0 0;
	font-size: .88rem;
	color: var(--krg-muted, #5d6369);
}
body.krg-pilot .elementor .krg-standard-reportlink {
	display: inline;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--krg-accent, #b83b35);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
body.krg-pilot .elementor .krg-standard-reportlink:hover { background: none; color: #a2312c; }
body.krg-pilot .elementor .krg-standard-reportlink:focus-visible {
	outline: 2px solid var(--krg-accent, #b83b35);
	outline-offset: 2px;
	border-radius: 2px;
}

/* -- Photos and the About lead. -- */
body.krg-pilot .v4-profile-gallery > img {
	border-radius: .9rem;
	box-shadow: 0 14px 32px -22px rgb(35 57 91 / .5);
}
body.krg-pilot .krg-standard-prose {
	max-width: 62ch;
	font-size: 1.06rem;
	line-height: 1.7;
	color: #3a3f44;
}

/* -- At a glance: quieter footers, icons on a soft tile. -- */
body.krg-pilot .krg-glance-card .v2-icon {
	box-sizing: content-box;
	padding: .4rem;
	border-radius: .6rem;
	background: #fbefed;
}
body.krg-pilot .krg-glance-footer {
	border-block-start: 0;
	padding-block-start: .25rem;
}
body.krg-pilot .krg-glance-footer .krg-standard-tag {
	padding: 0;
	border: 0;
	background: none;
	color: var(--krg-muted, #5d6369);
	font-size: .76rem;
	font-weight: 600;
}
body.krg-pilot .krg-glance-footer .krg-standard-tag::before {
	content: "";
	width: .3rem;
	height: .3rem;
	margin-inline-end: .45rem;
	border-radius: 50%;
	background: #b9bec4;
}

@media (max-width: 767px) {
	body.krg-pilot .v2-crumb { padding-inline-end: 3.25rem; }
	body.krg-pilot .krg-standard-actions .v2-row > .krg-standard-directions { flex: 1 1 100%; justify-content: center; }
}

/* Profile header rhythm: name and Korean name sit together; photos get room below. */
body.krg-pilot main > .v2-section:first-child { gap: .6rem; }
body.krg-pilot .krg-standard-ko { margin-block: 0 .35rem; }
body.krg-pilot .v4-profile-gallery { margin-block-end: 1.1rem; }
@media (max-width: 767px) {
	/* The page title right below already says where you are. */
	body.krg-pilot .v2-crumb a[aria-current="page"],
	body.krg-pilot .v2-crumb .v2-crumb-separator:has(+ a[aria-current="page"]) { display: none; }
}


/* ==========================================================================
   Less templated: facts as a plain divided sheet, not a grid of boxed cards.
   Shadows, icon tiles and pill badges removed; one accent, used sparingly.
   ========================================================================== */

/* -- At a glance as a fact sheet: label left, answer right, hairlines between. -- */
body.krg-pilot .krg-glance-wrap { display: block; border-block-start: 1px solid var(--krg-line, #e2e5e8); }
body.krg-pilot .krg-glance-row { display: block; }
body.krg-pilot .elementor .krg-glance-card {
	display: grid;
	grid-template-columns: 11rem minmax(0, 1fr);
	column-gap: 2rem;
	row-gap: .4rem;
	align-content: start;
	padding: 1.25rem 0;
	border: 0;
	border-block-end: 1px solid var(--krg-line, #e2e5e8);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
body.krg-pilot .krg-glance-card > :first-child { grid-column: 1; grid-row: 1 / span 4; }
body.krg-pilot .krg-glance-card > :not(:first-child) { grid-column: 2; }
body.krg-pilot .krg-glance-card .v2-icon { display: none; }
body.krg-pilot .krg-glance-card .v2-h3 { font-size: .95rem; font-weight: 600; color: var(--krg-ink, #171a1d); }
body.krg-pilot .krg-glance-footer { margin-block-start: 0; padding-block-start: .15rem; }
@media (max-width: 767px) {
	body.krg-pilot .elementor .krg-glance-card { grid-template-columns: minmax(0, 1fr); padding-block: 1.1rem; }
	body.krg-pilot .krg-glance-card > :first-child { grid-row: auto; }
	body.krg-pilot .krg-glance-card > :not(:first-child),
	body.krg-pilot .krg-glance-card > :first-child { grid-column: 1; }
}

/* -- Status as plain text: colour carries the meaning, not a pill. -- */
body.krg-pilot .krg-glance-chip {
	padding: 0;
	border: 0;
	background: none;
	font-size: .82rem;
	font-weight: 600;
}
body.krg-pilot .krg-standard-pill,
body.krg-pilot .krg-standard-pill.is-open {
	padding: 0;
	border: 0;
	background: none;
}
body.krg-pilot .krg-standard-pill { color: #7a4f0d; }
body.krg-pilot .krg-standard-pill.is-open { color: #1d6b3f; }

/* -- Directions panel under the map: no second box. -- */
body.krg-pilot .elementor .krg-visit-tools {
	padding: .75rem 0 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

/* -- Photo cards: area is text beside the name, not a tag on the image. -- */
body.krg-pilot .krg-more-arealine {
	margin: 0;
	font-size: .78rem;
	color: rgb(255 255 255 / .8);
}

/* -- Home hero: the page already tells you to scroll. -- */
.elementor .v6-scene-scroll { display: none; }

body.krg-pilot .krg-glance-card > :first-child { align-self: start; }
body.krg-pilot .krg-glance-card > :first-child.v2-row { align-items: flex-start; }
body.krg-pilot .krg-glance-footer .krg-standard-tag::before { content: none; }
body.krg-pilot .krg-glance-footer:empty { display: none; }


/* ==========================================================================
   Site-wide: tip tiles as a plain ruled row, no icon discs.
   ========================================================================== */
.elementor .v2-shortcuts { gap: 0 2rem; }
.elementor .v2-shortcut {
	padding: 1rem 0 1.1rem;
	border: 0;
	border-block-start: 1px solid var(--krg-line, #e2e5e8);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.elementor .v2-shortcut .v2-icon,
.elementor .v2-shortcut [class*="icon"] { display: none; }
.elementor .v2-shortcut:hover { background: transparent; border-block-start-color: var(--krg-accent, #b83b35); }
.elementor .v2-shortcut :is(.v2-shortcut-label, h2, h3, p):first-of-type { color: var(--krg-ink, #171a1d); }
/* Guide sections: the long titles carry the page; the small icons add nothing. */
.elementor .v2-guide-detail .v2-icon { display: none; }

/* The tip tiles are .v2-guide-card (home, guides, food): plain ruled links. */
body .elementor .v2-guide-card {
	min-height: 0;
	padding: 1rem 0 1.1rem;
	border: 0;
	border-block-start: 1px solid var(--krg-line, #e2e5e8);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transition: border-color .2s ease;
}
body .elementor .v2-guide-card .v2-icon { display: none; }
body .elementor .v2-guide-card:hover { background: transparent; filter: none; border-block-start-color: var(--krg-accent, #b83b35); }
body .elementor .v2-guide-card .v2-h3 { font-size: 1.02rem; }
body .elementor .v2-guide-grid { gap: 0 2rem; }
body .elementor .v2-guide-card { gap: .2rem; }
body .elementor .v2-guide-card > * { padding-inline: 0; margin-inline: 0; }
body .elementor .v2-guide-card .v2-h3::after {
	content: "\2192";
	display: inline-block;
	margin-inline-start: .45rem;
	color: var(--krg-accent, #b83b35);
	transition: transform .2s ease;
}
body .elementor .v2-guide-card:hover .v2-h3::after { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { body .elementor .v2-guide-card .v2-h3::after { transition: none; } }

/* Tip tiles: title and description share one left edge. */
body .elementor .v2-guide-card { flex-direction: column; align-items: flex-start; justify-content: flex-start; }
body .elementor .v2-guide-card .v2-stack { padding: 0; margin: 0; align-items: flex-start; text-align: left; gap: .2rem; min-height: 0; }

/* Saved places: no eyebrow, and an empty state that reads as part of the page. */
.page-id-14 .v2-kicker { display: none; }
.page-id-14 main > :is(.v2-section, div):first-of-type { row-gap: .6rem; }
body .elementor .krg-saved-page-empty {
	max-width: 34rem;
	padding: 1.25rem 0 2rem;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	align-items: flex-start;
	text-align: left;
}
body .elementor .krg-saved-page-empty :is(.v2-icon, svg) { display: none; }
body .elementor .v2-guide-card .v2-stack > * { align-self: flex-start; margin: 0; padding: 0; text-indent: 0; }
body .elementor .v2-guide-card > .v2-stack { flex: 0 0 auto; width: 100%; }
body .elementor .v2-guide-card > .v2-stack { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; }
body .elementor .v2-guide-card :is(.v2-h3, .v2-small, .v2-stack) { margin-inline: 0 !important; padding-inline: 0 !important; }
body .elementor .v2-guide-card { padding-inline: 0 !important; }
body .elementor .v2-guide-card > .v2-icon { display: none !important; width: 0; height: 0; padding: 0; margin: 0; flex: 0 0 0; }
body .elementor .v2-guide-card { display: block !important; }
body .elementor .v2-guide-card > .v2-stack { display: block !important; }

/* ==========================================================================
   Profile spacing: tighter rhythm, source line shares a row with the toggle.
   ========================================================================== */
body.krg-pilot main > .v2-section { padding-block: 1.05rem; gap: .8rem; }
body.krg-pilot main > .v2-section:first-child { padding-block-end: .5rem; }
body.krg-pilot .v4-profile-gallery { margin-block-end: .25rem; }
body.krg-pilot .krg-profile-map { height: 340px; min-height: 0; }
body.krg-pilot .krg-standard-actions { padding-block: .1rem .6rem; }

/* Fact sheet rows: label | answer. The source note shares a row with "Sources". */
body.krg-pilot .elementor .krg-glance-card {
	grid-template-columns: 10rem minmax(0, 1fr);
	column-gap: 1.5rem;
	row-gap: .2rem;
	padding-block: .85rem;
}
body.krg-pilot .krg-glance-card > :first-child { grid-column: 1; grid-row: 1 / span 3; }
body.krg-pilot .krg-glance-card > :not(:first-child) { grid-column: 2; }
body.krg-pilot .krg-glance-content { gap: .3rem; }
body.krg-pilot .krg-glance-meta { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
body.krg-pilot .krg-glance-meta > .krg-glance-footer { margin: 0; padding: .15rem 0 0; flex: 0 0 auto; }
body.krg-pilot .krg-glance-card .krg-standard-details summary { padding-block: .1rem; }

/* FAQ rows */
body.krg-pilot .krg-standard-faq summary { padding-block: .7rem; }

@media (max-width: 767px) {
	body.krg-pilot main > .v2-section { padding-block: .9rem; gap: .7rem; }
	body.krg-pilot .elementor .krg-glance-card { grid-template-columns: minmax(0, 1fr); padding-block: .8rem; }
	body.krg-pilot .krg-glance-card > :first-child { grid-column: 1; grid-row: auto; }
	body.krg-pilot .krg-glance-card > :not(:first-child) { grid-column: 1; }
	body.krg-pilot .krg-profile-map { height: 260px; }
}

@media (max-width: 767px) {
	/* With the current page hidden, the last separator would dangle. */
	body.krg-pilot .v2-crumb .v2-crumb-separator:nth-last-child(2) { display: none; }
}


/* ==========================================================================
   Photo gallery: three cards, the last opens a viewer with every photo.
   ========================================================================== */
body.krg-pilot .v4-profile-gallery { position: relative; }
body.krg-pilot .v4-profile-gallery > img[hidden] { display: none !important; }
body.krg-pilot .v4-profile-gallery > .krg-gallery-tile { cursor: zoom-in; transition: filter .2s ease; }
body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:hover { filter: brightness(.94); }
body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 3px; }
/* The overlay sits in the same grid cell as the third photo: a plain "+2". */
body.krg-pilot .v4-profile-gallery > .krg-gallery-more {
	grid-column: 2;
	grid-row: 2;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: .9rem;
	background: rgb(23 26 29 / .5);
	color: #fff;
	font: 600 2rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
	letter-spacing: -.01em;
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: background-color .2s ease;
}
body.krg-pilot .v4-profile-gallery > .krg-gallery-more:hover { background: rgb(23 26 29 / .62); }
body.krg-pilot .v4-profile-gallery > .krg-gallery-more:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 3px; }

.krg-lightbox {
	width: min(94vw, 78rem);
	max-width: none;
	max-height: 94dvh;
	padding: 1rem;
	border: 0;
	border-radius: 1rem;
	background: #14171a;
	color: #fff;
	overflow: auto;
}
.krg-lightbox::backdrop { background: rgb(12 14 16 / .86); }
.krg-lightbox-stage { display: flex; justify-content: center; }
.krg-lightbox-img { display: block; max-width: 100%; max-height: 68dvh; object-fit: contain; border-radius: .6rem; }
.krg-lightbox-bar { display: flex; align-items: center; gap: .75rem; margin-block: .85rem; }
.krg-lightbox-count { flex: 1; text-align: center; font-size: .9rem; color: rgb(255 255 255 / .8); font-variant-numeric: tabular-nums; }
.krg-lightbox-btn {
	min-height: 2.5rem;
	padding: .4rem 1rem;
	border: 1px solid rgb(255 255 255 / .28);
	border-radius: .45rem;
	background: transparent;
	color: #fff;
	font: 600 .88rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
.krg-lightbox-btn:hover { background: rgb(255 255 255 / .1); border-color: rgb(255 255 255 / .5); }
.krg-lightbox-btn:focus-visible, .krg-lightbox-thumb:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.krg-lightbox-close { margin-inline-start: .5rem; }
.krg-lightbox-strip { display: flex; gap: .5rem; overflow-x: auto; padding-block-end: .25rem; }
.krg-lightbox-thumb { flex: 0 0 auto; width: 5.5rem; height: 3.75rem; padding: 0; border: 2px solid transparent; border-radius: .4rem; background: none; opacity: .6; cursor: pointer; overflow: hidden; transition: opacity .2s ease, border-color .2s ease; }
.krg-lightbox-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.krg-lightbox-thumb.is-current { opacity: 1; border-color: #fff; }
.krg-lightbox-thumb:hover { opacity: 1; }
@media (max-width: 767px) {
	.krg-lightbox { padding: .6rem; border-radius: .6rem; }
	.krg-lightbox-img { max-height: 56dvh; }
	.krg-lightbox-btn { padding-inline: .7rem; }
	body.krg-pilot .v4-profile-gallery > .krg-gallery-more { grid-column: 2; grid-row: 2; }
}

/* Gallery: the third photo and its "+N" overlay share one cell. */
body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:nth-of-type(3) { grid-column: 2; grid-row: 2; }
body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:nth-of-type(2) { grid-column: 2; grid-row: 1; }

/* About: paragraphs side by side on desktop, no empty right half. */
@media (min-width: 900px) {
	body.krg-pilot .krg-standard-about {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 2.5rem;
		row-gap: .6rem;
		align-items: start;
	}
	body.krg-pilot .krg-standard-about > :not(.krg-standard-prose):not(p) { grid-column: 1 / -1; }
	body.krg-pilot .krg-standard-about .krg-standard-prose { max-width: none; margin: 0; }
}
body.krg-pilot .krg-standard-about .krg-standard-prose { font-size: 1rem; line-height: 1.65; }
body.krg-pilot .v4-profile-gallery { margin-block-end: 1.1rem; }

/* About: the two notes are separated by a hairline and extra space. */
@media (min-width: 900px) {
	body.krg-pilot .krg-standard-about { column-gap: 3.5rem; }
	body.krg-pilot .krg-standard-about .krg-standard-prose + .krg-standard-prose {
		position: relative;
	}
	body.krg-pilot .krg-standard-about .krg-standard-prose + .krg-standard-prose::before {
		content: "";
		position: absolute;
		inset-block: .2rem;
		inset-inline-start: -1.75rem;
		width: 1px;
		background: var(--krg-line, #e2e5e8);
	}
}
@media (max-width: 899px) {
	body.krg-pilot .krg-standard-about .krg-standard-prose + .krg-standard-prose {
		margin-block-start: .4rem;
		padding-block-start: .9rem;
		border-block-start: 1px solid var(--krg-line, #e2e5e8);
	}
}
@media (min-width: 900px) {
	body.krg-pilot .krg-standard-about .krg-standard-prose:first-of-type { padding-inline-end: 2rem; }
	body.krg-pilot .krg-standard-about .krg-standard-prose + .krg-standard-prose { padding-inline-start: 2rem; }
	body.krg-pilot .krg-standard-about .krg-standard-prose + .krg-standard-prose::before { inset-inline-start: 0; }
}

/* FAQ: no grey fills; each answer is indented under its question. */
body.krg-pilot .krg-standard-faq,
body.krg-pilot .krg-standard-faq:hover,
body.krg-pilot .krg-standard-faq[open],
body.krg-pilot .krg-standard-faq summary:hover,
body.krg-pilot .krg-standard-faq summary:focus { background: transparent; }
body.krg-pilot .krg-standard-faq summary { padding: 1rem 0; }
body.krg-pilot .krg-standard-faq summary:hover { color: var(--krg-accent, #b83b35); }
body.krg-pilot .krg-standard-answer {
	margin: 0 0 1.25rem 1.1rem;
	padding: .15rem 0 .15rem 1.1rem;
	border-inline-start: 2px solid var(--krg-line, #e2e5e8);
	max-width: 44rem;
}
body.krg-pilot .krg-standard-faq[open] .krg-standard-answer { border-inline-start-color: var(--krg-accent, #b83b35); }
body.krg-pilot .krg-standard-answer p + p { margin-block-start: .6rem; }
@media (max-width: 767px) {
	body.krg-pilot .krg-standard-answer { margin-inline-start: .35rem; padding-inline-start: .85rem; }
}

/* Rows without a toggle: the source note is a quiet line under the answer. */
body.krg-pilot .krg-glance-card > .krg-glance-footer { grid-column: 2; padding: .1rem 0 0; margin: 0; }


/* ==========================================================================
   Site footer: a deep green close that matches the home hero.
   ========================================================================== */
body .elementor footer.v2-footer {
	margin-block-start: 3rem;
	padding: 3.25rem max(2rem, calc((100% - 76rem) / 2 + 2rem)) 6.5rem;
	border: 0;
	background: #1c2622;
	color: #e9e6dc;
}
.krg-footer-main {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 3rem;
	padding-block-end: 2.5rem;
	border-block-end: 1px solid rgb(233 230 220 / .14);
}
.krg-footer-logo {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	color: #f4f1e8;
	font: 800 .78rem/1.25 var(--krg-body, "DM Sans", system-ui, sans-serif);
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}
.krg-footer-logo img { border-radius: .5rem; }
.krg-footer-line {
	margin: 1.5rem 0 0;
	max-width: 22ch;
	font: 600 clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem)/1.12 var(--krg-display, Newsreader), Georgia, serif;
	font-family: var(--krg-display, Newsreader), Georgia, "Times New Roman", serif;
	letter-spacing: -.02em;
	color: #f4f1e8;
	text-wrap: balance;
}
.krg-footer-note {
	margin: 1rem 0 0;
	max-width: 40ch;
	font-size: .92rem;
	line-height: 1.6;
	color: rgb(233 230 220 / .68);
}
.krg-footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; align-content: start; }
.krg-footer-title { margin: 0 0 .85rem; font: 700 .95rem/1.2 var(--krg-body, "DM Sans", system-ui, sans-serif); color: #f4f1e8; }
.krg-footer-group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.krg-footer-group a {
	display: inline-block;
	padding: .3rem 0;
	color: rgb(233 230 220 / .74);
	font-size: .95rem;
	text-decoration: none;
	transition: color .2s ease, transform .2s ease;
}
.krg-footer-group a:hover { color: #fff; transform: translateX(3px); }
.krg-footer-base {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding-block-start: 1.25rem;
	font-size: .85rem;
	color: rgb(233 230 220 / .6);
}
.krg-footer-base p { margin: 0; }
.krg-footer-utility { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; }
body .elementor .krg-footer-legal { color: rgb(233 230 220 / .74); text-decoration: underline; text-underline-offset: 3px; }
body .elementor .krg-footer-legal:hover { color: #fff; }
.krg-footer-note a { color: rgb(233 230 220 / .85); text-decoration: underline; text-underline-offset: 3px; transition: color .2s ease; }
.krg-footer-note a:hover { color: #fff; }
.krg-footer a:focus-visible { outline: 2px solid #f0a49d; outline-offset: 3px; border-radius: 2px; }
@media (max-width: 767px) {
	body .elementor footer.v2-footer { padding: 2.5rem 1.25rem 6.5rem; }
	.krg-footer-main { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-block-end: 1.75rem; }
}
@media (max-width: 767px) {
	.krg-footer-base { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ==========================================================================
   Profile: jump bar, sidebar, grouped photo tabs.
   ========================================================================== */
:target, [id^="krg-"] { scroll-margin-block-start: 4.5rem; }

/* Jump bar: sticky, quiet, scrolls sideways on phones. */
.krg-jump {
	position: sticky;
	top: 0;
	z-index: 20;
	margin-block: .5rem 1.25rem;
	background: rgb(255 255 255 / .94);
	backdrop-filter: blur(8px);
	border-block-end: 1px solid var(--krg-line, #e2e5e8);
}
body.admin-bar .krg-jump { top: 32px; }
.krg-jump ul { display: flex; gap: 1.75rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.krg-jump ul::-webkit-scrollbar { display: none; }
.krg-jump a {
	display: block;
	padding: .85rem 0 .75rem;
	border-block-end: 2px solid transparent;
	color: var(--krg-muted, #5d6369);
	font: 600 .92rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
	text-decoration: none;
	white-space: nowrap;
	transition: color .2s ease, border-color .2s ease;
}
.krg-jump a:hover { color: var(--krg-ink, #171a1d); }
.krg-jump a.is-current { color: var(--krg-ink, #171a1d); border-block-end-color: var(--krg-accent, #b83b35); }
.krg-jump a:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 3px; border-radius: 2px; }
@media (max-width: 767px) { .krg-jump ul { gap: 1.25rem; } }

/* Layout: one column everywhere, two columns with a sidebar from 1024px. */
.krg-profile-layout { display: block; }
.krg-profile-side { display: none; }
@media (min-width: 1024px) {
	.krg-profile-layout.has-side {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 21.5rem;
		column-gap: 3rem;
		align-items: start;
	}
	.krg-profile-layout.has-side .krg-profile-side { display: block; position: sticky; top: 4.25rem; align-self: start; }
	body.admin-bar .krg-profile-layout.has-side .krg-profile-side { top: calc(4.25rem + 32px); }
	/* About reads as one column beside the sidebar. */
	.krg-profile-layout.has-side .krg-standard-about { display: block; }
	.krg-profile-layout.has-side .krg-standard-about .krg-standard-prose { max-width: 62ch; padding: 0; }
	.krg-profile-layout.has-side .krg-standard-about .krg-standard-prose + .krg-standard-prose { margin-block-start: .75rem; }
	.krg-profile-layout.has-side .krg-standard-about .krg-standard-prose + .krg-standard-prose::before { display: none; }
}
.krg-profile-panel {
	border: 1px solid var(--krg-line, #e2e5e8);
	border-radius: .9rem;
	background: #fff;
	overflow: hidden;
}
/* Blocks inside the panel: stacked, label above answer, hairlines between. */
.krg-profile-panel > * { padding: 1.15rem 1.25rem; }
.krg-profile-panel > * + * { border-block-start: 1px solid var(--krg-line, #e2e5e8); }
body.krg-pilot .krg-profile-panel .krg-glance-card {
	display: block;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	padding: 1.15rem 1.25rem;
}
body.krg-pilot .krg-profile-panel .krg-glance-card > :first-child { margin-block-end: .4rem; }
body.krg-pilot .krg-profile-panel .krg-glance-card .v2-h3 { font-size: .85rem; font-weight: 700; color: var(--krg-muted, #5d6369); }
body.krg-pilot .krg-profile-panel .krg-glance-meta { margin-block-start: .35rem; }
body.krg-pilot .elementor .krg-profile-panel .krg-visit-tools { padding: 1.15rem 1.25rem; }
.krg-profile-panel .krg-visit-tools .v2-row { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.krg-profile-panel .krg-visit-tools .v2-row > * { width: 100%; justify-content: center; }
.krg-profile-panel .krg-visit-tools .v2-small { margin-block-start: .75rem; }

/* Viewer tabs */
.krg-lightbox-tabs { display: flex; gap: .4rem; flex-wrap: wrap; margin-block-end: .85rem; }
.krg-lightbox-tab {
	min-height: 2.25rem;
	padding: .35rem .9rem;
	border: 1px solid rgb(255 255 255 / .22);
	border-radius: 999px;
	background: transparent;
	color: rgb(255 255 255 / .8);
	font: 600 .85rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.krg-lightbox-tab:hover { border-color: rgb(255 255 255 / .5); color: #fff; }
.krg-lightbox-tab.is-active { background: #fff; border-color: #fff; color: #14171a; }
.krg-lightbox-tab:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.krg-lightbox-thumb[hidden] { display: none; }

@media (min-width: 1024px) {
	body.krg-pilot .krg-profile-layout.has-side .krg-standard-about .krg-standard-prose,
	body.krg-pilot .krg-profile-layout.has-side .krg-standard-about .krg-standard-prose + .krg-standard-prose { padding-inline: 0; }
	body.krg-pilot .krg-profile-layout.has-side .elementor .krg-glance-card,
	body.krg-pilot .krg-profile-layout.has-side .krg-glance-card { grid-template-columns: 8.5rem minmax(0, 1fr); column-gap: 1.25rem; }
}
body.krg-pilot .krg-profile-panel > * + * { border-block-start: 1px solid var(--krg-line, #e2e5e8); }
body.krg-pilot .krg-profile-panel .krg-glance-card + .krg-glance-card,
body.krg-pilot .krg-profile-panel .krg-glance-card + .krg-visit-tools { border-block-start: 1px solid var(--krg-line, #e2e5e8); }
body.krg-pilot .krg-profile-panel .krg-glance-card .v2-h3 { margin: 0; }
body.krg-pilot .krg-profile-panel .krg-glance-card > .v2-row { margin-block-end: .35rem; }
dialog.krg-lightbox .krg-lightbox-btn,
dialog.krg-lightbox .krg-lightbox-tab { color: #fff; background: transparent; border-color: rgb(255 255 255 / .3); }
dialog.krg-lightbox .krg-lightbox-btn:hover,
dialog.krg-lightbox .krg-lightbox-tab:hover { color: #fff; background: rgb(255 255 255 / .1); border-color: rgb(255 255 255 / .55); }
dialog.krg-lightbox .krg-lightbox-tab.is-active { color: #14171a; background: #fff; border-color: #fff; }
dialog.krg-lightbox .krg-lightbox-close { background: rgb(255 255 255 / .12); }
dialog.krg-lightbox .krg-lightbox-thumb { background: none; border-color: transparent; }
dialog.krg-lightbox .krg-lightbox-thumb.is-current { border-color: #fff; }
@media (max-width: 767px) {
	body.krg-pilot .v4-profile-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 13rem 8rem; gap: 8px; }
	body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:nth-of-type(1) { grid-column: 1 / -1; grid-row: 1; }
	body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:nth-of-type(2) { grid-column: 1; grid-row: 2; }
	body.krg-pilot .v4-profile-gallery > .krg-gallery-tile:nth-of-type(3) { grid-column: 2; grid-row: 2; }
	body.krg-pilot .v4-profile-gallery > .krg-gallery-more { grid-column: 2; grid-row: 2; }
	body.krg-pilot .v4-profile-gallery > img { height: 100%; width: 100%; aspect-ratio: auto; }
}
@media (max-width: 767px) {
	body.krg-pilot .krg-glance-card > .krg-glance-footer { grid-column: 1; }
}
body.krg-pilot .krg-standard-more { border-block-start: 0; padding-block-start: 2rem; }


/* Galleries with one or two photos. */
body.krg-pilot .v4-profile-gallery:has(> img:first-child:last-child) { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
body.krg-pilot .v4-profile-gallery:has(> img:first-child:last-child) > img { grid-row: auto; grid-column: 1; height: clamp(14rem, 34vw, 22rem); }
body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) { grid-template-columns: 2fr 1fr; grid-template-rows: auto; }
body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) > img { grid-row: auto; height: clamp(14rem, 30vw, 20rem); }
body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) > img:first-child { grid-column: 1; }
body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) > img:nth-child(2) { grid-column: 2; }
@media (max-width: 767px) {
	body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	body.krg-pilot .v4-profile-gallery:has(> img:nth-child(2):last-child) > img { height: 11rem; }
	body.krg-pilot .v4-profile-gallery:has(> img:first-child:last-child) > img { height: 14rem; }
}

/* Without a map, the sidebar already carries the directions, so the empty "Plan your visit" block is hidden beside it. */
@media (min-width: 1024px) {
	.krg-profile-layout.has-side #krg-plan:not(:has(.krg-profile-map)) { display: none; }
}

/* Card photos are cropped to fit, never stretched. The older rule only matched an
   <img> nested inside .v2-banner-photo, but the class sits on the <img> itself. */
.elementor img.v2-banner-photo,
.elementor .v2-area-card img,
.elementor .v2-food-card img,
.elementor img.v2-card-photo,
.krg-standard-morecard img {
	object-fit: cover;
	object-position: center;
}

/* ==========================================================================
   Restaurant cards and listing: status, facts, filter panel, sort, list view.
   ========================================================================== */

/* -- Card details, over the photo gradient -- */
.krg-card-meta { margin-block-start: .35rem; display: grid; gap: .15rem; }
.krg-card-meta p { margin: 0; }
.krg-card-line { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .6rem; font-size: .8rem; font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; }
.krg-status { display: inline-flex; align-items: center; gap: .35rem; }
.krg-status::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: #9aa1a8; }
.krg-status.is-open::before { background: #6fd19a; }
.krg-status.is-closed::before { background: #f0a49d; }
.krg-card-price { color: rgb(255 255 255 / .86); font-weight: 500; }
.krg-card-facts { font-size: .74rem; color: rgb(255 255 255 / .74); }

/* -- Layout: filters left, results right on wide screens -- */
.krg-list-layout { display: block; }
@media (min-width: 1024px) {
	.krg-list-layout {
		display: grid;
		grid-template-columns: 15.5rem minmax(0, 1fr);
		column-gap: 2.5rem;
		align-items: start;
	}
	.krg-list-aside { position: sticky; top: 1.25rem; max-height: calc(100dvh - 2.5rem); overflow-y: auto; padding-inline-end: .25rem; }
	.krg-filters-toggle { display: none; }
}
.krg-list-aside-title { margin: 0 0 .75rem; font: 700 1rem/1.2 var(--krg-body, "DM Sans", system-ui, sans-serif); color: var(--krg-ink, #171a1d); }

/* Panel form: one column, native checkboxes with counts. */
.krg-list-aside .krg-catalog-filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: .85rem; }
.krg-list-aside .krg-catalog-filters > label:not(.krg-filter-checkbox) { flex: none; }
.krg-list-aside .krg-catalog-filters select { width: 100%; }
body .elementor .krg-list-aside .krg-filter-checkbox {
	display: flex;
	align-items: center;
	gap: .6rem;
	min-height: 0;
	padding: .3rem 0;
	border: 0;
	border-radius: 0;
	background: none;
	font-size: .92rem;
	font-weight: 500;
}
body .elementor .krg-list-aside .krg-filter-checkbox:has(input:checked) { background: none; border: 0; color: var(--krg-ink, #171a1d); font-weight: 700; }
body .elementor .krg-list-aside .krg-filter-checkbox input { position: static; opacity: 1; inset: auto; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--krg-accent, #b83b35); }
.krg-count { margin-inline-start: auto; font-size: .8rem; color: var(--krg-muted, #5d6369); font-variant-numeric: tabular-nums; }
.krg-list-aside .krg-filter-chips { margin: 0; }
.krg-list-aside .krg-filter-status:not(.is-empty) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Phones: filters sit behind a button. */
@media (max-width: 1023px) {
	.krg-list-aside-title { display: none; }
	.krg-filters-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 2.75rem;
		padding: .5rem 1rem;
		border: 1px solid var(--krg-line, #e2e5e8);
		border-radius: .5rem;
		background: #fff;
		color: var(--krg-ink, #171a1d);
		font: 600 .95rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
		cursor: pointer;
	}
	.krg-filters-toggle::after { content: ""; width: .5rem; height: .5rem; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s ease; }
	.krg-filters-toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }
	.krg-list-aside .v2-filter-mount { display: none; margin-block-start: .85rem; }
	.krg-list-aside.is-open .v2-filter-mount { display: block; }
	.krg-list-layout { margin-block-start: .5rem; }
	.krg-list-main { margin-block-start: 1rem; }
}

/* -- Toolbar -- */
.krg-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding-block: .25rem 1rem; border-block-end: 1px solid var(--krg-line, #e2e5e8); }
body .elementor .krg-list-toolbar p.krg-list-count.v2-result-count { display:flex; align-items:center; min-height:48px; margin:0; padding:0; font:500 15px/1.5 var(--krg-body,"DM Sans"),sans-serif; letter-spacing:0; color:var(--krg-ink,#202427); }
@media(max-width:767px) { body .elementor .krg-list-toolbar p.krg-list-count.v2-result-count { min-height:0; } }
.krg-list-controls { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.krg-sort { display: inline-flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--krg-muted, #5d6369); }
.krg-sort select { min-height: 2.5rem; padding: .35rem .7rem; border: 1px solid var(--krg-line, #e2e5e8); border-radius: .5rem; background: #fff; color: var(--krg-ink, #171a1d); font: 600 .88rem var(--krg-body, "DM Sans", system-ui, sans-serif); }
.krg-sort select:focus-visible, .krg-view button:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 2px; }
.krg-view { display: inline-flex; border: 1px solid var(--krg-line, #e2e5e8); border-radius: .5rem; overflow: hidden; }
.krg-view button { min-height: 2.5rem; padding: .35rem .95rem; border: 0; background: #fff; color: var(--krg-muted, #5d6369); font: 600 .88rem var(--krg-body, "DM Sans", system-ui, sans-serif); cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.krg-view button + button { border-inline-start: 1px solid var(--krg-line, #e2e5e8); }
.krg-view button[aria-pressed="true"] { background: var(--krg-ink, #171a1d); color: #fff; }

/* Results use the narrower column: two cards across on desktop. */
@media (min-width: 1024px) {
	.krg-list-layout .krg-list-main .v2-area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* -- List view: photo left, details right -- */
.krg-list-layout.is-list .krg-list-main .v2-area-grid { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] {
	display: grid;
	grid-template-columns: 13rem minmax(0, 1fr);
	min-height: 0;
	height: auto;
	background: #fff;
	border: 1px solid var(--krg-line, #e2e5e8);
	color: var(--krg-ink, #171a1d);
}
.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] img.v2-banner-photo { position: relative; inset: auto; grid-column: 1; width: 100%; height: 100%; min-height: 9.5rem; }
.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] .v2-banner-shade { display: none; }
.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] .v2-stack { grid-column: 2; min-height: 0; margin: 0; padding: 1rem 3.5rem 1rem 1.25rem; justify-content: center; color: var(--krg-ink, #171a1d); }
.krg-list-layout.is-list .krg-list-main .v2-area-title { color: var(--krg-ink, #171a1d); font-size: 1.1rem; }
.krg-list-layout.is-list .krg-list-main .v2-area-location { color: var(--krg-muted, #5d6369); }
.krg-list-layout.is-list .krg-card-line { color: var(--krg-ink, #171a1d); font-size: .88rem; }
.krg-list-layout.is-list .krg-status.is-open { color: #1d6b3f; }
.krg-list-layout.is-list .krg-status.is-open::before { background: #2e7d4f; }
.krg-list-layout.is-list .krg-status.is-closed { color: #8a2f2b; }
.krg-list-layout.is-list .krg-status.is-closed::before { background: #b83b35; }
.krg-list-layout.is-list .krg-card-price { color: var(--krg-muted, #5d6369); }
.krg-list-layout.is-list .krg-card-facts { color: var(--krg-muted, #5d6369); font-size: .82rem; }
@media (max-width: 767px) {
	.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] { grid-template-columns: 7.5rem minmax(0, 1fr); }
	.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] .v2-stack { padding: .75rem 2.75rem .75rem .9rem; }
	.krg-list-layout.is-list .krg-list-main a.v2-area-card[href*="/en/r/"] img.v2-banner-photo { min-height: 7.5rem; }
}

@media (min-width: 1024px) { .krg-list-aside .krg-filters-toggle { display: none !important; } }
body .elementor .krg-list-aside .krg-catalog-filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: .85rem; align-items: stretch; }
body .elementor .krg-list-aside .krg-catalog-filters > * { flex: none; }
.krg-list-aside .krg-filter-reset { display: inline-block; margin-block-start: .35rem; }
.krg-sort { white-space: nowrap; }
.krg-filter-checkbox[hidden] { display: none !important; }
@media (max-width: 1023px) {
	body .elementor .krg-list-aside .v2-filter-mount { display: none !important; }
	body .elementor .krg-list-aside.is-open .v2-filter-mount { display: block !important; }
	body .elementor .krg-list-aside .krg-filters-toggle { color: var(--krg-ink, #171a1d); background: #fff; border: 1px solid var(--krg-line, #e2e5e8); font-size: .95rem; }
	body .elementor .krg-list-aside .krg-filters-toggle:hover { border-color: var(--krg-accent, #b83b35); }
	body .elementor .krg-list-aside .krg-filters-toggle:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 2px; }
	.krg-list-toolbar { gap: .5rem 1rem; }
}

@media (max-width: 1023px) { body .elementor .krg-list-aside .krg-filters-toggle { width: 100% !important; display: flex !important; } }
@media (max-width: 767px) { .krg-list-layout:not(.is-list) .krg-card-facts { display: none; } }

/* Google Maps fallback embed */
.krg-profile-map--embed { overflow: hidden; border-radius: .9rem; border: 1px solid var(--krg-line, #e2e5e8); }
.krg-profile-map--embed iframe { display: block; width: 100%; height: 100%; border: 0; }


/* ==========================================================================
   Plain pages (Privacy Policy, 404): the site header, footer and type.
   ========================================================================== */
body:not(.elementor-page):not(.elementor-template-canvas) { background: #fff; color: var(--krg-ink, #171a1d); font-family: var(--krg-body, "DM Sans", system-ui, sans-serif); }
.krg-plain-header { border-block-end: 1px solid var(--krg-line, #e2e5e8); background: #fff; }
.krg-plain-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; max-width: 76rem; margin-inline: auto; padding: 1.1rem 2rem; }
.krg-plain-brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--krg-ink, #171a1d); font: 800 .78rem/1.25 var(--krg-body, "DM Sans", system-ui, sans-serif); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.krg-plain-brand img { border-radius: .5rem; }
.krg-plain-nav { display: flex; gap: 1.75rem; flex-wrap: wrap; }
.krg-plain-nav a { padding: .4rem 0; color: var(--krg-ink, #171a1d); font: 600 .95rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif); text-decoration: none; border-block-end: 2px solid transparent; transition: color .2s ease, border-color .2s ease; }
.krg-plain-nav a:hover { color: var(--krg-accent, #b83b35); border-block-end-color: var(--krg-accent, #b83b35); }
.krg-plain-nav a:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 3px; }
body:not(.elementor-page) #content { max-width: 46rem; margin: 0 auto; padding: 3rem 1.5rem 4rem; }
body:not(.elementor-page) #content .page-header .entry-title,
body:not(.elementor-page) #content h1 { font-family: var(--krg-display, Newsreader), Georgia, serif; font-weight: 600; font-size: clamp(2rem, 1.4rem + 2.2vw, 2.85rem); line-height: 1.1; letter-spacing: -.02em; color: var(--krg-ink, #171a1d); margin: 0 0 1.25rem; text-wrap: balance; }
body:not(.elementor-page) #content h2 { font-family: var(--krg-display, Newsreader), Georgia, serif; font-weight: 600; font-size: 1.6rem; line-height: 1.15; letter-spacing: -.015em; margin: 2.25rem 0 .6rem; color: var(--krg-ink, #171a1d); }
body:not(.elementor-page) #content p, body:not(.elementor-page) #content li { font-size: 1.02rem; line-height: 1.7; color: #3a3f44; }
body:not(.elementor-page) #content a { color: var(--krg-accent, #b83b35); text-underline-offset: 3px; }
.krg-plain-footer { margin-block-start: 2rem; }
@media (max-width: 767px) {
	.krg-plain-header-inner { padding: .85rem 1.1rem; flex-wrap: wrap; gap: .6rem 1rem; }
	.krg-plain-nav { gap: 1.1rem; }
	body:not(.elementor-page) #content { padding: 2rem 1.1rem 3rem; }
}
.krg-plain-footer { background: #1c2622; color: #e9e6dc; padding: 3.25rem max(2rem, calc((100% - 76rem) / 2 + 2rem)) 3rem; margin-block-start: 3rem; }
@media (max-width: 767px) { .krg-plain-footer { padding: 2.5rem 1.25rem 3rem; } }
.krg-404 { text-align: left; }
.krg-404-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 1.5rem !important; }
body:not(.elementor-page) #content .krg-404-links a {
	display: inline-flex; align-items: center; min-height: 2.75rem; padding: .6rem 1.1rem;
	border: 1px solid var(--krg-line, #e2e5e8); border-radius: .45rem; background: #fff;
	color: var(--krg-ink, #171a1d); font: 600 .92rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif); text-decoration: none;
	transition: border-color .2s ease, color .2s ease;
}
body:not(.elementor-page) #content .krg-404-links a:hover { border-color: var(--krg-accent, #b83b35); color: var(--krg-accent, #b83b35); }
body:not(.elementor-page) #content .krg-404-links a.krg-404-primary { background: var(--krg-accent, #b83b35); border-color: var(--krg-accent, #b83b35); color: #fff; }
body:not(.elementor-page) #content .krg-404-links a.krg-404-primary:hover { background: #a2312c; color: #fff; }
body:not(.elementor-page):not(.elementor-template-canvas) { min-height: 100dvh; display: flex; flex-direction: column; }
body:not(.elementor-page):not(.elementor-template-canvas) #content { flex: 1 0 auto; width: 100%; box-sizing: border-box; }

/* Breadcrumbs: the site body font on every page, not only the profile pages. */
.elementor .v2-crumb, .elementor .v2-crumb a, .elementor .v2-crumb .v2-crumb-separator { font-family: var(--krg-body, "DM Sans", system-ui, sans-serif); }
.elementor .v2-crumb a { color: var(--krg-muted, #5d6369); text-decoration: none; transition: color .2s ease; }
.elementor .v2-crumb a:hover { color: var(--krg-accent, #b83b35); }
.elementor .v2-crumb a[aria-current="page"] { color: var(--krg-ink, #171a1d); font-weight: 600; }

/* Home hero: no "scroll" cue (the later hero stylesheet re-shows it, so this must win). */
body .elementor .v6-scene-scroll { display: none !important; }
/* Footer links: a comfortable tap height. */
.krg-footer-legal { display: inline-block; padding-block: .6rem; }
.krg-footer-base { align-items: center; }
/* One skip link: ours. The parent theme's duplicate is hidden. */
a.skip-link, a.skip-link.screen-reader-text { display: none !important; }
.page-id-14 main > .v2-section:first-of-type, .page-id-14 main > .v2-crumb + * { margin-block-start: .6rem; }
.page-id-14 .v2-crumb { margin-block-end: .4rem; }
.page-id-14 .v2-h1 { margin-block-start: .25rem; }


/* ==========================================================================
   Search: popup and suggestion lists
   ========================================================================== */

/* -- Suggestion list (popup and page search bars) -- */
.krg-sr { font-family: var(--krg-body, "DM Sans", system-ui, sans-serif); color: var(--krg-ink, #171a1d); }
.krg-sr[hidden] { display: none !important; }
.krg-sr.v2-search-results,
.krg-sr.krg-search-results {
	padding: .4rem;
	border: 1px solid var(--krg-line, #e2e5e8);
	border-radius: .85rem;
	background: #fff;
	box-shadow: 0 18px 40px -18px rgb(23 26 29 / .35);
	max-height: min(26rem, 60dvh);
	overflow-y: auto;
	overscroll-behavior: contain;
	text-align: left;
}
.krg-sr .krg-sr-group { display: flex; align-items: center; justify-content: space-between; margin: 0; padding: .7rem .75rem .3rem; font: 700 .78rem/1.2 var(--krg-body, "DM Sans", system-ui, sans-serif); color: var(--krg-muted, #5d6369); }
.krg-sr a.krg-sr-item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: .15rem .85rem;
	min-height: 3.5rem;
	margin: 0;
	padding: .55rem .75rem;
	border-radius: .6rem;
	color: var(--krg-ink, #171a1d);
	text-decoration: none;
	transition: background-color .15s ease;
}
.krg-sr a.krg-sr-item:has(.krg-sr-thumb) { grid-template-columns: 3rem minmax(0, 1fr) auto; }
.krg-sr a.krg-sr-item:hover,
.krg-sr a.krg-sr-item.is-active,
.krg-sr a.krg-sr-item:focus-visible { background: var(--krg-paper, #f5f6f7); color: var(--krg-ink, #171a1d); }
.krg-sr a.krg-sr-item.is-active { box-shadow: inset 3px 0 0 var(--krg-accent, #b83b35); }
.krg-sr a.krg-sr-item:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: -2px; }
.krg-sr .krg-sr-thumb { width: 3rem; height: 3rem; border-radius: .5rem; object-fit: cover; background: var(--krg-line, #e2e5e8); }
.krg-sr .krg-sr-body { display: grid; gap: .1rem; min-width: 0; }
.krg-sr .krg-sr-name { font-size: 1rem; font-weight: 600; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.krg-sr .krg-sr-name mark { background: none; color: var(--krg-accent, #b83b35); font-weight: 700; }
.krg-sr .krg-sr-meta { font-size: .82rem; line-height: 1.3; color: var(--krg-muted, #5d6369); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.krg-sr .krg-sr-side { font-size: .78rem; font-weight: 600; color: var(--krg-muted, #5d6369); white-space: nowrap; text-align: right; }
.krg-sr .krg-status { color: #1d6b3f; }
.krg-sr .krg-status.is-closed { color: #8a2f2b; }
.krg-sr .krg-status::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.krg-sr a.krg-sr-all {
	display: block !important;
	margin: .35rem .25rem .1rem;
	padding: .8rem .75rem;
	border-block-start: 1px solid var(--krg-line, #e2e5e8);
	color: var(--krg-accent, #b83b35);
	font-size: .92rem;
	font-weight: 700;
	text-decoration: none;
}
.krg-sr a.krg-sr-all::after { content: " \2192"; }
.krg-sr a.krg-sr-all:hover { color: #982d28; }
.krg-sr a.krg-sr-all:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: -2px; border-radius: .4rem; }

/* Suggestions when empty, and when nothing matches */
.krg-sr .krg-sr-block { padding-block-end: .25rem; }
.krg-sr .krg-sr-chips { display: flex; flex-wrap: wrap; gap: .4rem; padding: .15rem .75rem .35rem; }
.krg-sr .krg-sr-chip {
	display: inline-flex; align-items: center; min-height: 2.25rem; padding: .35rem .85rem;
	border: 1px solid var(--krg-line, #e2e5e8); border-radius: 999px; background: #fff;
	color: var(--krg-ink, #171a1d); font: 600 .86rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif);
	text-decoration: none; cursor: pointer; transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.krg-sr .krg-sr-chip:hover { border-color: var(--krg-accent, #b83b35); color: var(--krg-accent, #b83b35); background: #fff; }
.krg-sr .krg-sr-chip:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 2px; }
.krg-sr .krg-sr-clear { margin: 0; padding: .1rem .3rem; border: 0; background: none; color: var(--krg-accent, #b83b35); font: 600 .78rem/1 var(--krg-body, "DM Sans", system-ui, sans-serif); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.krg-sr .krg-sr-emptytext { margin: 0; padding: .9rem .75rem .35rem; font-size: .95rem; line-height: 1.5; color: var(--krg-muted, #5d6369); }

/* -- The popup -- */
body:not(.elementor-editor-active):not(.elementor-edit-mode) .krg-global-search-shell {
	background: rgb(23 26 29 / .6);
	backdrop-filter: blur(4px);
	padding: clamp(1rem, 7vh, 4.5rem) 1rem 1rem;
}
.elementor .krg-global-search-panel {
	width: min(40rem, 100%);
	max-height: min(46rem, calc(100dvh - 2rem));
	padding: 1.75rem 1.5rem 1.25rem !important;
	gap: .5rem;
	border-radius: 1.1rem;
	overflow: hidden;
}
.elementor .krg-global-search-panel .v2-h2 { font-size: 1.6rem; padding-inline-end: 3rem; }
.elementor .krg-global-search-panel .v2-copy { margin-block-end: .5rem; }
.elementor .krg-search-mount { flex: 1 1 auto !important; min-height: 0; }
.elementor .krg-global-search-panel .krg-sr.krg-search-results {
	flex: 1 1 auto;
	max-height: none;
	margin-top: .6rem;
	padding: .15rem 0 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
/* Close: a quiet round button. The text stays for screen readers. */
.elementor .krg-global-search-close {
	top: 1.1rem; right: 1.1rem;
	width: 2.5rem !important; height: 2.5rem; padding: 0 !important;
	border: 0 !important; border-radius: 50% !important;
	background-color: var(--krg-paper, #f5f6f7) !important;
	font-size: 0 !important; color: transparent !important;
	background-image: linear-gradient(45deg, transparent 46%, #171a1d 46% 54%, transparent 54%), linear-gradient(-45deg, transparent 46%, #171a1d 46% 54%, transparent 54%) !important;
	background-size: 1rem 1rem !important; background-position: center !important; background-repeat: no-repeat !important;
	transition: background-color .15s ease;
}
.elementor .krg-global-search-close:hover { background-color: var(--krg-line, #e2e5e8) !important; }
.elementor .krg-global-search-close:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 2px; }
/* The field: a tall, calm bar with a clear focus ring. */
.elementor .krg-global-search-panel .krg-search-mount { border-radius: .75rem; }
.elementor .krg-global-search-panel .krg-search-form input[type="search"] { font-size: 1.05rem; min-height: 3rem; }
@media (max-width: 767px) {
	body:not(.elementor-editor-active):not(.elementor-edit-mode) .krg-global-search-shell { padding: 0; }
	.elementor .krg-global-search-panel { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; padding: 1.25rem 1rem 1rem !important; }
	.elementor .krg-global-search-panel .v2-h2 { font-size: 1.4rem; }
	.elementor .krg-global-search-panel .krg-search-form input[type="search"] { font-size: 16px; }
	.krg-sr a.krg-sr-item { min-height: 3.75rem; }
}
@media (prefers-reduced-motion: no-preference) {
	.krg-global-search-shell.is-open .krg-global-search-panel { animation: krg-pop .18s ease-out; }
	@keyframes krg-pop { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: none; } }
}
.krg-search-form input[type="search"]::-webkit-search-cancel-button,
.v2-search-form input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none; appearance: none; height: 1.1rem; width: 1.1rem; margin-inline: .25rem .5rem; cursor: pointer;
	background: linear-gradient(45deg, transparent 44%, #5d6369 44% 56%, transparent 56%), linear-gradient(-45deg, transparent 44%, #5d6369 44% 56%, transparent 56%);
}

@media (max-width: 767px) {
	.krg-sr .krg-sr-name { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}
body > .krg-sr.v2-search-results { margin: 0; }

/* Compact search interaction states; shared by page, hero and popup suggestions. */
body .krg-sr:is(.v2-search-results, .krg-search-results) {
 padding: .25rem; border-radius: .45rem !important;
 box-shadow: 0 6px 18px rgb(23 26 29 / .1) !important;
}
body .krg-sr a:is(.krg-sr-item, .krg-sr-all) {
 border-radius: .3rem !important; border: 0 !important;
 box-shadow: none !important; transition: background-color .15s ease, color .15s ease;
}
body .krg-sr a.krg-sr-all { margin: 0 !important; min-height: 2.75rem; padding: .8rem .75rem; }
body .krg-sr a:is(.krg-sr-item, .krg-sr-all):hover {
 background-color: var(--krg-paper, #f5f6f7) !important; color: var(--krg-ink, #171a1d) !important;
}
body .krg-sr a:is(.krg-sr-item, .krg-sr-all):is(.is-active, :active) {
 background-color: color-mix(in srgb, var(--krg-accent, #b83b35) 8%, white) !important;
 color: var(--krg-ink, #171a1d) !important;
}
body .krg-sr a.krg-sr-item.is-active { box-shadow: inset 2px 0 var(--krg-accent, #b83b35) !important; }
body .krg-sr a:is(.krg-sr-item, .krg-sr-all):focus-visible {
 outline: 2px solid var(--krg-accent, #b83b35) !important; outline-offset: -2px !important;
}
body .krg-sr .krg-sr-chip { min-height: 2.75rem; }
body .krg-sr .krg-sr-chip:active {
 background: color-mix(in srgb, var(--krg-accent, #b83b35) 8%, white);
 color: var(--krg-accent, #b83b35);
}
body .elementor .krg-global-search-panel .krg-sr:is(.v2-search-results, .krg-search-results) {
 border: 0; border-radius: 0 !important; box-shadow: none !important; padding: .15rem 0;
}
@media (prefers-reduced-motion: reduce) {
 .v2-search > .v2-search-form, .v2-search button[type="submit"],
 .krg-sr a:is(.krg-sr-item, .krg-sr-all) { transition: none !important; }
}

/* Suggestions extend the search field into one continuous component. */
body .krg-sr:is(.v2-search-results, .krg-search-results),
body .elementor .krg-global-search-panel .krg-sr:is(.v2-search-results, .krg-search-results) {
 box-sizing: border-box; padding: .25rem !important; margin: 0 !important;
 border: 1px solid var(--krg-accent, #b83b35) !important; border-block-start: 0 !important;
 border-radius: 0 0 .45rem .45rem !important; background: var(--krg-white, #fff) !important;
 box-shadow: none !important;
}
body .krg-sr a:is(.krg-sr-item, .krg-sr-all),
body .krg-sr :is(.krg-sr-group, .krg-sr-chips, .krg-sr-emptytext) { padding-inline: .625rem; }
body .krg-sr .krg-sr-chip {
 border-radius: .3rem; background: var(--krg-paper, #f5f6f7); font-weight: 500;
}

body .elementor .v2-search > .v2-search-form:has(input[aria-expanded="true"]) {
 border-radius: .45rem .45rem 0 0 !important;
 border-color: var(--krg-accent) !important; border-block-end-color: var(--krg-line) !important;
 box-shadow: none !important;
}
body .elementor .v2-search > .v2-search-results { top: 3rem !important; }
body .elementor .krg-global-search-panel > .v2-search { gap: 0 !important; }
body .elementor .krg-global-search-panel > .v2-search > .v4-map-entry { margin-block-start: .25rem !important; }

/* Restaurant tabs: only the selected information panel is visible. */
body.krg-pilot .krg-tab-panel[hidden] { display: none !important; }
.krg-tab-panels, .krg-tab-panel { min-width: 0; }
.krg-tab-panel:focus-visible { outline: 2px solid var(--krg-accent, #b83b35); outline-offset: 4px; }
body.krg-pilot .krg-tab-panel > .v2-section:first-child { margin-block-start: 0; }
body.krg-pilot .krg-tab-panel--menu > .krg-glance-card,
body.krg-pilot .krg-tab-panel--hours > .krg-glance-card,
body.krg-pilot .krg-tab-panel--location > .krg-glance-card {
  margin: 0;
  padding-block: 1.25rem;
}
body.krg-pilot .krg-tab-panel--menu .krg-standard-details { width: 100%; }
body.krg-pilot .krg-tab-panel--location .krg-visit-tools { margin-block-start: 1rem; }
body.krg-pilot .elementor .krg-standard-directions::after { content: none; }
body.krg-pilot .krg-standard-directions .krg-action-icon,
body.krg-pilot .krg-save-restaurant > svg { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; fill: currentColor; }
body.krg-pilot .krg-save-restaurant { display: inline-flex; align-items: center; gap: .5rem; }
body.krg-pilot .krg-save-restaurant > svg { fill: none; stroke: currentColor; stroke-width: 1.8; }
body.krg-pilot .krg-save-restaurant[aria-pressed="true"] > svg { fill: currentColor; stroke: currentColor; }
body.krg-pilot .krg-save-restaurant[aria-pressed="true"] { color: var(--krg-accent, #b83b35); }
body.krg-pilot .krg-save-restaurant > .v3-heart {
  display: inline-block; width: 1.15rem; height: 1.15rem; flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url("assets/fa-heart-outline.svg") center / contain no-repeat;
  mask: url("assets/fa-heart-outline.svg") center / contain no-repeat;
}
body.krg-pilot .krg-save-restaurant[aria-pressed="true"] > .v3-heart {
  -webkit-mask-image: url("assets/fa-heart-filled.svg");
  mask-image: url("assets/fa-heart-filled.svg");
}
@media (max-width: 767px) {
  .krg-section-tabs ul { gap: .75rem; justify-content: space-between; }
  .krg-section-tabs a { min-height: 44px; display: flex; align-items: center; font-size: .85rem; }
}
@media print {
  body.krg-pilot .krg-tab-panel[hidden] { display: block !important; }
  .krg-section-tabs { display: none; }
}

/* Restaurant detail pages: original deep green identity in a minimal footer. */
body.krg-pilot .elementor footer.v2-footer {
  margin-block-start: 2rem;
  padding: 1.25rem max(2rem, calc((100% - 76rem) / 2 + 2rem));
  border: 0;
  background: #1c2622;
  color: #e9e6dc;
}
body.krg-pilot .krg-footer {
  display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 2rem;
}
body.krg-pilot .krg-footer-main { display: block; padding: 0; border: 0; }
body.krg-pilot .krg-footer-main :is(.krg-footer-line, .krg-footer-note, .krg-footer-nav) { display: none; }
body.krg-pilot .krg-footer-logo { font-size: .7rem; letter-spacing: .06em; gap: .6rem; }
body.krg-pilot .krg-footer-logo img { width: 30px; height: 30px; }
body.krg-pilot .krg-footer-base { flex: 1 1 auto; padding-block-start: 0; gap: .25rem 1.5rem; color: rgb(233 230 220 / .74); }
body.krg-pilot .krg-footer-utility { padding-inline-end: 3rem; }
body.krg-pilot.krg-footer-at-end .krg-standard-stickybar,
body.krg-pilot.krg-footer-at-end .krg-standard-stickybar.krg-visit-dock { display: none !important; }
@media (max-width: 767px) {
  body.krg-pilot:has(footer.v2-footer) { padding-bottom: 0 !important; }
  body.krg-pilot .elementor footer.v2-footer { padding: 1.25rem 1.25rem calc(5rem + env(safe-area-inset-bottom, 0px)); }
  body.krg-pilot .krg-footer { align-items: flex-start; gap: .75rem; }
  body.krg-pilot .krg-footer-base { flex-basis: 100%; }
  body.krg-pilot .krg-footer-utility { gap: 0 1rem; }
}

/* One search surface: same outline, no external gap or decorative result arrow. */
body .elementor :is(.v2-search-form, .krg-search-form):has(input[aria-expanded="true"]) {
  background: #fff !important;
  border: 1px solid var(--krg-accent, #b83b35) !important;
  border-block-end-color: var(--krg-line, #e2e5e8) !important;
  border-radius: .45rem .45rem 0 0 !important;
  box-shadow: none !important;
}
body .krg-sr a.krg-sr-all::after { content: none !important; display: none !important; }
body .krg-sr .krg-sr-clear,
body .krg-sr .krg-sr-clear:is(:hover, :focus, :active) {
  min-height: 2.75rem; margin: 0; padding: .35rem .625rem;
  border: 0 !important; border-radius: .3rem;
  background: transparent !important; color: var(--krg-muted, #5d6369) !important;
  font: 600 .78rem/1.2 var(--krg-body, "DM Sans", system-ui, sans-serif);
  text-decoration: underline; text-underline-offset: 3px;
  box-shadow: none !important; transform: none !important;
}
body .krg-sr .krg-sr-clear:hover { color: var(--krg-ink, #171a1d) !important; }
body .krg-sr .krg-sr-clear:focus-visible {
  outline: 2px solid var(--krg-accent, #b83b35) !important; outline-offset: 1px;
}

/* Mobile address actions: one row with two equal columns. */
@media (max-width: 767px) {
  body.krg-pilot #krg-address .krg-glance-footer { display: block; }
  body.krg-pilot #krg-address .krg-glance-actions {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; width: 100%;
  }
  body.krg-pilot #krg-address .krg-glance-action {
    min-width: 0; width: 100%; min-height: 44px; padding: .5rem .4rem;
    font-size: .85rem; justify-content: center;
  }
}
/* Hours: each weekday has its own row; original source notes remain below. */
body.krg-pilot .krg-weekly-hours { width: 100%; max-width: 42rem; margin: 0; border-collapse: collapse; font-size: .95rem; }
body.krg-pilot .krg-weekly-hours :is(th, td) { padding: .65rem 0; border: 0; border-block-end: 1px solid var(--krg-line, #e2e5e8); text-align: left; vertical-align: top; background: transparent; }
body.krg-pilot .krg-weekly-hours th { width: 8rem; padding-inline-end: 1rem; font-weight: 600; }
body.krg-pilot .krg-weekly-hours td { font-variant-numeric: tabular-nums; }
body.krg-pilot .krg-weekly-hours-note { display: block; margin-top: .25rem; color: var(--krg-muted, #5d6369); font-size: .82rem; line-height: 1.45; }
body.krg-pilot .krg-hours-local-time { margin: 0 0 .4rem; color: var(--krg-muted, #5d6369); font-size: .8rem; }
body.krg-pilot .krg-hours-source-note { margin-block-start: .75rem; }

/* Keep the weekday schedule visible above the original recorded notes. */
body.krg-pilot #krg-main:has(#krg-hours:target) #krg-panel-krg-hours #krg-hours .krg-glance-content { display: grid !important; }
body.krg-pilot #krg-main:has(#krg-hours:target) #krg-panel-krg-hours #krg-hours > .v2-copy[hidden] { display: none !important; }

/* Mobile footer: copyright and utility links share the page centre. */
@media (max-width: 767px) {
  body :is(footer.v2-footer, .krg-plain-footer) .krg-footer-base {
    flex-direction: column; align-items: center; justify-content: center;
    width: 100%; text-align: center; gap: .35rem;
  }
  body :is(footer.v2-footer, .krg-plain-footer) .krg-footer-utility {
    display: flex; justify-content: center; flex-wrap: wrap !important; white-space: normal !important;
    width: 100%; max-width: 19rem !important; padding-inline: 0 !important; gap: 0 1rem !important;
  }
  body :is(footer.v2-footer, .krg-plain-footer) .krg-footer-legal {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; white-space: nowrap;
  }
}

/* Shared page rhythm. One contract for every discovery, profile and information page. */
body {
  --krg-ui-h1:2.25rem; --krg-ui-h2:1.5rem; --krg-ui-h3:1.25rem;
  --krg-ui-gutter:2rem; --krg-ui-top:2rem; --krg-ui-section:2rem;
}
body .elementor .v2-header { margin-block-end:0 !important; }
body .elementor main#krg-main.v2-shell,
body #content.site-main {
  box-sizing:border-box; width:100%; max-width:76rem !important;
  margin-inline:auto !important; padding:var(--krg-ui-top) var(--krg-ui-gutter) 3rem !important;
}
body .elementor main#krg-main.v2-shell { gap:0 !important; }
body .elementor main#krg-main.v2-shell:has(> .v6-scene) { padding-block-start:.75rem !important; }
body .elementor main#krg-main h1.v2-h1,
body #content.site-main h1.entry-title {
  font-family:var(--krg-display,Newsreader),Georgia,serif !important;
  font-size:var(--krg-ui-h1) !important; line-height:1.2 !important;
  font-weight:600 !important; letter-spacing:-.025em !important;
  margin:0 !important; max-width:100% !important;
}
body .elementor main#krg-main h2,
body #content.site-main :is(.entry-content,.page-content) h2 {
  font-family:var(--krg-display,Newsreader),Georgia,serif !important;
  font-size:var(--krg-ui-h2) !important; line-height:1.25 !important;
  font-weight:600 !important; letter-spacing:-.015em !important;
}
body .elementor main#krg-main .v2-h3,
body #content.site-main :is(.entry-content,.page-content) h3 {
  font-family:var(--krg-display,Newsreader),Georgia,serif !important;
  font-size:var(--krg-ui-h3) !important; line-height:1.3 !important; font-weight:600 !important;
}
body .elementor main#krg-main .v2-copy,
body #content.site-main :is(.entry-content,.page-content) {
  font-family:var(--krg-body,"DM Sans"),sans-serif !important;
  font-size:1rem !important; font-weight:400; line-height:1.6 !important;
}
body .elementor main#krg-main :is(strong,b),body #content.site-main :is(strong,b) { font-weight:700; }
body .elementor main#krg-main .v2-crumb,
body #content.site-main .v2-crumb {
  display:flex; flex-wrap:wrap; align-items:center; min-height:2rem;
  font:400 .875rem/1.5 var(--krg-body,"DM Sans"),sans-serif !important;
  margin:0 !important; padding:0 !important; gap:0;
}
body :is(main#krg-main,#content.site-main) .v2-crumb :is(a,span) {
  font:inherit; padding:0; min-height:2rem; display:inline-flex; align-items:center;
}
body :is(main#krg-main,#content.site-main) .v2-crumb a { padding-inline:0; color:var(--krg-muted,#5d6369); text-decoration:none; }
body :is(main#krg-main,#content.site-main) .v2-crumb a[aria-current="page"] { font-weight:600; color:var(--krg-ink,#171a1d); }
body :is(main#krg-main,#content.site-main) .v2-crumb .v2-crumb-separator { padding-inline:.625rem; }
body :is(main#krg-main,#content.site-main) .v2-crumb a:is(:hover,:focus-visible) { color:var(--krg-accent,#b83b35); text-decoration:underline; text-underline-offset:3px; }
body :is(main#krg-main,#content.site-main) .v2-crumb a:focus-visible { outline:2px solid var(--krg-accent,#b83b35); outline-offset:3px; }
body .elementor main#krg-main > .e-con:has(h1.v2-h1) { padding:0 !important; margin:0 !important; gap:.75rem !important; }
body .elementor main#krg-main :is(nav,.e-con):has(> .v2-crumb):not(:has(h1)) { padding:0 !important; margin:0 !important; }
body .elementor main#krg-main > .e-con:has(h1) > .v2-crumb { margin-bottom:.25rem !important; }
body .elementor main#krg-main > .v2-crumb { margin-bottom:1rem !important; }
body .elementor main#krg-main > h1.v2-h1 { margin-bottom:.75rem !important; }
body .elementor main#krg-main .v2-sectionhead:has(> h1) { gap:.75rem !important; }
body .elementor main#krg-main > .e-con:has(h1) > p:not(.v2-crumb),
body .elementor main#krg-main .v2-sectionhead:has(> h1) > p {
  max-width:48rem !important; margin:0 !important;
  font:400 1rem/1.6 var(--krg-body,"DM Sans"),sans-serif !important;
}
body .elementor main#krg-main > :is(.v2-section,.v4-food-more):not(:has(h1)) {
  padding:0 !important; margin-block:var(--krg-ui-section) 0 !important; gap:1rem !important;
}
body .elementor main#krg-main > .v2-section:has(.v2-sectionhead > h1):not(:has(.v2-crumb)) { gap:1.5rem !important; }
body .elementor main#krg-main .v2-sectionhead:has(> h2 + p) { gap:.75rem !important; }
body .elementor main#krg-main .v2-sectionhead > h2 + p { max-width:48rem; }
body .elementor main#krg-main > .v2-guide-detail {
  margin-block:var(--krg-ui-section) 0 !important; padding-block:1.5rem 0 !important;
  column-gap:2rem !important;
}
body .elementor main#krg-main > .v2-search { margin-top:1.5rem !important; }
body .elementor main#krg-main > .e-con:has(h1) > .v2-search { margin-block:.75rem 0 !important; }
body .elementor main#krg-main > .krg-saved-page-mount { margin-top:var(--krg-ui-section); padding:0; }
body .elementor main#krg-main .e-tabs-base { margin-top:.75rem; padding-top:0; gap:1.5rem; }
body .elementor main#krg-main .krg-city-panel > .v2-copy { margin: .75rem 0 1.5rem !important; }
body .elementor main#krg-main :is(.v2-area-grid:not(.v4-profile-gallery),.krg-areas-grid,.krg-standard-moregrid,.v2-food-grid) { padding:0 !important; }
body .elementor main#krg-main :is(.v2-area-title,.krg-district-title,.v2-food-card h3) {
  font-family:var(--krg-body,"DM Sans"),sans-serif !important;
  font-size:1.125rem !important; line-height:1.3 !important; font-weight:600 !important;
}
body .elementor main#krg-main :is(.v2-food-card p,.krg-district-description) { font-size:.875rem !important; line-height:1.5 !important; font-weight:400 !important; }
body #content.site-main > .v2-crumb { margin-bottom:1rem !important; }
body #content.site-main .page-header { margin-bottom:.75rem; }
body #content.site-main :is(.entry-content,.page-content) { max-width:48rem; }
body #content.site-main :is(.entry-content,.page-content) :is(p,ul,ol) { margin-block:0 1rem; }
body #content.site-main :is(.entry-content,.page-content) :is(h2,h3) { margin-block:var(--krg-ui-section) .75rem; }
body .krg-plain-header-inner { box-sizing:border-box; }
body .krg-plain-footer:has(> .krg-footer) { background:#f6f3ed; color:#1c2923; padding:36px var(--krg-ui-gutter) 24px; border-top:1px solid #e3dfd7; }
@media(max-width:767px) {
  body { --krg-ui-h1:1.75rem; --krg-ui-h2:1.375rem; --krg-ui-gutter:1rem; --krg-ui-top:1.5rem; --krg-ui-section:1.5rem; }
  body :is(main#krg-main,#content.site-main) .v2-crumb :is(a,span) { min-height:2.75rem; }
  body .elementor main#krg-main .v2-crumb,
  body #content.site-main .v2-crumb { min-height:2.75rem; }
  body .elementor main#krg-main :is(.v2-area-title,.krg-district-title,.v2-food-card h3) { font-size:1rem !important; }
  body .krg-plain-footer:has(> .krg-footer) { padding:24px 1rem calc(var(--krg-mobile-nav-height,4.1rem) + 72px); }
}


/* Retain the accepted search and menu presentation during shared layout changes. */
body .elementor main#krg-main.v2-shell .v2-search > .v4-map-entry { display:none !important; }
body .elementor main#krg-main.v2-shell :is(#krg-menu,#krg-panel-krg-menu) img { display:none !important; }
body .elementor main#krg-main.v2-shell #krg-menu > .e-con:has(img):not(:has(.v2-copy,.krg-menu-content)),
body .elementor main#krg-main.v2-shell :is(#krg-menu,#krg-panel-krg-menu) figure:has(img) { display:none !important; }
body .elementor main#krg-main.v2-shell .v2-sectionhead > .v2-row:has(> a.v2-button[href*="/en/restaurants/?city="][href*="&area="]) { display:none !important; }
/* Shared card type and breadcrumb wrappers override older family-specific rules. */
body .elementor main#krg-main.v2-shell :is(.v2-area-grid,.krg-standard-moregrid,.krg-areas-grid,.v2-food-grid) :is(.v2-area-card,.krg-standard-morecard,.krg-district-card,.v2-food-card) :is(.v2-area-title,.krg-district-title,h3) { font-family:var(--krg-body,"DM Sans"),sans-serif !important; font-size:1.125rem !important; font-weight:600 !important; line-height:1.3 !important; }
body .elementor main#krg-main > .e-con:has(h1) > nav:has(> .v2-crumb) { margin-bottom:.25rem !important; }
body #content.site-main .v2-crumb [aria-current="page"] { font-weight:600; color:var(--krg-ink,#171a1d); }
@media(max-width:767px) {
 body .elementor main#krg-main.v2-shell :is(.v2-area-grid,.krg-standard-moregrid,.krg-areas-grid,.v2-food-grid) :is(.v2-area-card,.krg-standard-morecard,.krg-district-card,.v2-food-card) :is(.v2-area-title,.krg-district-title,h3) { font-size:1rem !important; }
}

body .elementor main#krg-main.v2-shell .krg-restaurant-card[data-krg-card-family]:is(.v2-area-card,.krg-standard-morecard) > .v2-stack .v2-area-title { font-family:var(--krg-body,"DM Sans"),sans-serif !important; font-size:1.125rem !important; font-weight:600 !important; line-height:1.3 !important; }
@media(max-width:767px) {
 body .elementor main#krg-main.v2-shell .krg-restaurant-card[data-krg-card-family]:is(.v2-area-card,.krg-standard-morecard) > .v2-stack .v2-area-title { font-size:1rem !important; }
}

/* On profile phones, the title supplies the current place; show only its ancestors. */
@media(max-width:767px) {
 body.krg-pilot .elementor main#krg-main .v2-crumb a[aria-current="page"],
 body.krg-pilot .elementor main#krg-main .v2-crumb .v2-crumb-separator:has(+ a[aria-current="page"]) { display:none !important; }
}
/* An active Hours panel must display its native card after tab reparenting. */
body.krg-pilot .elementor main#krg-main #krg-panel-krg-hours:not([hidden]) > #krg-hours.krg-glance-card {
 display:flex !important; flex-direction:column; align-items:stretch; gap:.75rem;
 padding:0; margin:0; border:0;
}
body.krg-pilot .elementor main#krg-main #krg-panel-krg-hours > #krg-hours.krg-glance-card > .v2-row { padding:0; }
body.krg-pilot .elementor main#krg-main #krg-panel-krg-hours > #krg-hours.krg-glance-card .v2-h3 { font-size:var(--krg-ui-h2) !important; line-height:1.25 !important; }

/* One menu button and the approved four mobile destinations. */
body header .krg-menu-toggle ~ .krg-menu-toggle { display:none !important; }
@media(max-width:767px) {
 body .elementor nav.v2-bottomnav.krg-uniform-bottomnav[aria-label][data-element_type] { grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
 body .elementor nav.v2-bottomnav.krg-uniform-bottomnav > a.v2-bottomlink[data-nav-key="search"][href*="focus=search"] { display:none !important; }
}



body header#krg-site-navigation.v2-header.krg-uniform-header a.krg-search-utility {display:none !important;}

/* Shared header and reservation action sizing. */
body header#krg-site-navigation.v2-header.krg-uniform-header a.krg-search-utility {display:none !important;}
body.krg-pilot .elementor main#krg-main.v2-shell .krg-reservation-action .krg-action-icon {width:18px !important;height:18px !important;flex:0 0 18px;fill:currentColor;}
body.krg-pilot .elementor main#krg-main.v2-shell .krg-reservation-action {align-items:center;justify-content:center;gap:.5rem;min-height:44px;}
@media(max-width:767px) {body.krg-pilot .elementor main#krg-main.v2-shell a.krg-reservation-action {grid-column:1 / -1 !important;width:100% !important;max-width:100% !important;}}

/* Breadcrumbs: anonymous text slashes and wrapped separators share one spacing rule. */
body :is(main#krg-main.v2-shell,main#content.site-main) .v2-crumb:has(a) {
 column-gap:.625rem !important;
 row-gap:0 !important;
}
body :is(main#krg-main.v2-shell,main#content.site-main) .v2-crumb .v2-crumb-separator {
 padding-inline:0 !important;
 margin-inline:0 !important;
}

/* Desktop directory: Filters, count and controls share one header row. */
@media (min-width:1024px) {
 body .elementor main#krg-main .krg-list-layout > .krg-list-aside { margin-top:0; }
 body .elementor main#krg-main .krg-list-aside > .krg-list-aside-title {
  box-sizing:border-box; display:flex; align-items:center; height:74px;
  margin:0 0 16px; padding:12px 0; border-bottom:1px solid var(--krg-line,#e2e5e8);
  font:600 15px/1.5 var(--krg-body,"DM Sans"),sans-serif; letter-spacing:0;
 }
 body .elementor main#krg-main .krg-list-toolbar {
  box-sizing:border-box; min-height:74px; flex-wrap:nowrap;
  padding:12px 0 !important; margin:0 0 16px !important;
 }
}
