/* Shared shell refinements. Content and card composition remain in Elementor. */
body { font-family: var(--krg-body, "DM Sans"), system-ui, sans-serif; }
body .elementor .v2-header {
  width: 100%; min-height: 76px; padding-block: 15px; gap: 20px;
  align-items: center; flex-wrap: nowrap;
}
body .elementor .v2-header .v2-nav { gap: 22px; padding: 0; }
body .elementor .v2-header .v2-navlink { font-size: 14px; }
body .elementor .v2-header .krg-search-utility {
  margin-inline-start: 2px; border: 0; border-radius: 6px;
}
body .elementor .v2-header .krg-search-utility::after { display: none; }
body .elementor .v2-header .krg-search-utility:hover { background: #f5f6f7; }
body .elementor .v2-header .v3-saved-open { border: 0; padding: 0; min-height: 44px; }
body .elementor .v2-header .v2-language { border: 0; background: transparent; padding: 0; min-height: 44px; }
body .elementor main .v2-h1 { font-size: 2rem; line-height: 1.2; }
body .elementor main .v2-h2 { font-size: 1.5rem; line-height: 1.25; }
body .elementor main .v2-copy { font-size: .95rem; line-height: 1.6; }
body:not(.elementor-page) #content.site-main .page-header h1.entry-title { font: 600 2rem/1.2 Newsreader,Georgia,serif; }
body #content.site-main .entry-content h2 { font: 600 1.5rem/1.25 Newsreader,Georgia,serif; }
body .krg-plain-header-inner { max-width:76rem; min-height:76px; padding:15px 32px; }
body .krg-plain-brand { font:800 .8rem/1.2 "DM Sans",sans-serif; letter-spacing:0; }
body .krg-plain-brand img { width:32px; height:32px; }
body .krg-plain-nav { gap:22px; }
body .krg-plain-nav a { font-size:14px; }
body .elementor .v2-sectionhead:has(>h1 + .v2-copy) { align-items: flex-start; flex-direction: column; gap: .9rem; }
body .elementor .v2-sectionhead:has(>h1)>.v2-copy { max-width: 52rem; }
body .elementor main>.v2-crumb { width: 100%; }
body .elementor main .v2-button { background: #b83b35; border-color: #b83b35; color: #fff; }
body .elementor main .v2-button:hover { background: #982d28; border-color: #982d28; color: #fff; }
/* The shared card rows keep three equal columns, including incomplete final rows. */
body .elementor .v2-area-grid:not(.v4-profile-gallery) { grid-template-columns: repeat(3,minmax(0,1fr)); }
body .elementor .v2-area-grid:not(.v4-profile-gallery)>.v2-area-card,
body .elementor .v2-area-grid:not(.v4-profile-gallery)>.v3-save-wrap { grid-column: auto; min-width: 0; }
body .elementor .krg-list-layout .v2-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
body .elementor .krg-list-layout.is-list .v2-area-grid { grid-template-columns: 1fr; }
body:not(.elementor-editor-active):not(.elementor-edit-mode) .elementor .v2-editor-only { display: none; }
.krg-map-area-field { display: flex; align-items: center; gap: 14px; width: min(100%,460px); margin: 0 0 12px; color: #5d6369; font: 600 14px/1.5 "DM Sans",sans-serif; }
.krg-map-area-field select { flex: 1; min-width: 0; min-height: 44px; border: 1px solid #e2e5e8; border-radius: 6px; background: white; color: #171a1d; font: 400 14px "DM Sans",sans-serif; padding: 10px 12px; }
.krg-map-summary { font: 400 13px/1.5 "DM Sans",sans-serif; color: #5d6369; margin: 0 0 16px; }
.krg-map-controls { display:flex; align-items:flex-start; flex-wrap:wrap; gap:16px 28px; margin-bottom:12px; }
.krg-map-controls .krg-map-area-field { margin:0; padding-top:0; }
.page-id-13 .v2-map-scroll { gap: 8px; margin-bottom: 16px; }
.page-id-13 .v2-map-scroll .v2-pill { min-height: 44px; white-space: nowrap; }
@media (min-width:768px) and (max-width:1100px) {
  body .elementor .v2-header { display:flex; flex-wrap:nowrap; }
  body .elementor .v2-header .v2-brand-text { display:none; }
  body .elementor .v2-header .v2-nav { width:auto; flex:1; order:0; gap:18px; }
  body .elementor .v2-header .v3-saved-open { order:0; }
  body .elementor .v2-header .v2-language { order:0; }
}
@media (max-width:767px) {
  body .elementor .v2-header { min-height:64px; padding:10px 16px; gap:14px; }
  body .elementor .v2-header .v2-nav { display:none; }
  body .elementor .v2-header .v2-brand img { display:block; width:28px; height:28px; }
  body .elementor .v2-header .v2-brand { gap:8px; }
  body .elementor .v2-header .v3-saved-open { margin-inline-start:auto; }
  body .elementor main .v2-h1 { font-size:1.65rem; }
  body .elementor main .v2-h2 { font-size:1.3rem; }
  body:not(.elementor-page) #content.site-main .page-header h1.entry-title { font-size:1.65rem; }
  body #content.site-main .entry-content h2 { font-size:1.3rem; }
  body .krg-plain-header-inner { min-height:64px; padding:10px 16px; }
  body .elementor .v2-area-grid:not(.v4-profile-gallery),
  body .elementor .krg-list-layout .v2-area-grid { grid-template-columns:1fr; gap:16px; }
  body .elementor .v2-area-grid .v2-area-card { width:100%; min-height:220px; }
  body .elementor .v2-area-grid .v2-area-title { font-size:1rem; line-height:1.25; }
  body .elementor .v2-area-grid .v2-area-location { font-size:.75rem; }
  body .elementor .v2-area-grid .v2-stack { padding:16px; }
  body .elementor .krg-list-layout.is-list .v2-area-card { min-height:130px; }
  .krg-list-toolbar { flex-direction:column; align-items:stretch; gap:12px; }
  .krg-list-controls { flex-wrap:nowrap; justify-content:space-between; gap:8px; }
  .krg-sort { gap:6px; font-size:12px; }
  .krg-sort select { width:140px; min-height:44px; padding:6px 8px; font-size:12px; }
  .krg-view button { min-height:44px; padding:6px 10px; font-size:12px; }
  .krg-map-area-field { flex-direction:column; align-items:stretch; gap:6px; }
  .krg-map-controls { flex-direction:column; gap:14px; }
  .krg-map-controls .krg-map-area-field { padding-top:0; width:100%; }
  .page-id-13 .v2-map-scroll { flex-wrap:wrap; overflow:visible; }
}
@media (prefers-reduced-motion:reduce) { .v2-header * { transition:none !important; } }

/* Restaurant filters: compact discovery bar, theme-red selected states, mobile sheet. */
body .elementor .krg-modern-filters { display:block; width:100%; }
body .elementor .krg-modern-filters .krg-list-aside { position:relative; top:auto; width:100%; max-height:none; overflow:visible; padding:0; border:0; background:transparent; }
body .elementor .krg-modern-filters .v2-filter-mount { display:block !important; overflow:visible; margin:0 0 22px; padding:16px 0; border-block:1px solid #e9e6e3; background:transparent; }
body .elementor .krg-modern-filters .krg-modern-form { display:flex !important; align-items:center !important; flex-wrap:wrap; gap:10px !important; padding:0; }
.krg-modern-filters .krg-filter-group { position:relative; min-width:0; }
.krg-modern-filters .krg-filter-trigger { display:flex; align-items:center; gap:16px; min-height:46px; max-width:240px; padding:11px 16px; border:1px solid #e4e0dc; border-radius:24px; background:#fff; color:#292927; font:500 14px/1.5 "DM Sans",sans-serif; cursor:pointer; list-style:none; }
.krg-modern-filters .krg-filter-trigger::-webkit-details-marker { display:none; }
.krg-modern-filters .krg-filter-trigger span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.krg-modern-filters .krg-filter-trigger::after { content:""; flex:none; width:6px; height:6px; border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); margin-top:-3px; }
.krg-modern-filters .krg-filter-trigger:hover { border-color:#a5a09a; background:#faf9f7; }
.krg-modern-filters .krg-filter-group.has-value .krg-filter-trigger { background:#fbefed; border-color:#dcb3af; color:#9b302b; }
.krg-modern-filters .krg-filter-group[open] .krg-filter-trigger { border-color:#b83b35; box-shadow:0 0 0 3px #b83b3512; }
.krg-modern-filters .krg-filter-popover { position:absolute; z-index:120; top:calc(100% + 10px); left:0; width:300px; max-width:calc(100vw - 32px); padding:20px; border:1px solid #e9e4df; border-radius:16px; background:#fff; box-shadow:0 12px 36px #29211b20; }
.krg-filter-popover-title { color:#222; font:700 15px/1.4 "DM Sans",sans-serif; margin:0 0 14px; }
.krg-filter-hint { font:400 12px/1.6 "DM Sans",sans-serif; color:#6b655f; margin:0 0 12px; }
.krg-filter-option-search { width:100%; min-height:44px; border:1px solid #e4e0dc !important; border-radius:10px !important; padding:10px 12px !important; margin:0 0 10px; background:#faf9f7 !important; font:400 14px/1.5 "DM Sans",sans-serif !important; color:#292927; }
.krg-filter-options { display:grid; gap:4px; max-height:304px; overflow-y:auto; scrollbar-width:thin; }
.krg-filter-option { display:flex; align-items:center; gap:12px; width:100%; min-height:44px; padding:10px 12px; border:1px solid transparent; border-radius:9px; background:transparent; color:#34312f; text-align:left; font:400 14px/1.4 "DM Sans",sans-serif; cursor:pointer; }
.krg-filter-option-text { flex:1; }
.krg-filter-option-count { font-size:12px; color:#807873; }
.krg-filter-option::after { content:""; width:16px; height:16px; flex:none; border:1px solid #d6d0ca; border-radius:50%; background:#fff; }
.krg-filter-option:hover { background:#f7f5f2; color:#292927; }
.krg-filter-option[aria-pressed="true"] { border-color:#efd1cd; background:#fbefed; color:#9b302b; font-weight:600; }
.krg-filter-option[aria-pressed="true"]::after { background:#b83b35; border-color:#b83b35; box-shadow:inset 0 0 0 4px #fbefed; }
.krg-filter-option[hidden],.krg-filter-hint[hidden],.krg-filter-active-row[hidden] { display:none !important; }
.krg-filter-popover select[hidden],.krg-filter-dialog [hidden] { display:none !important; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open { display:flex; align-items:center; gap:8px; margin:0 0 0 auto; min-height:46px; padding:10px 14px; border:1px solid #e4e0dc; border-radius:24px; background:#fff; color:#393532; font:500 14px/1.5 "DM Sans",sans-serif; cursor:pointer; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open input { appearance:none; width:30px; height:18px; flex:none; margin:0; border:0; border-radius:20px; background:#d7d1ca; position:relative; cursor:pointer; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open input::after { content:""; position:absolute; width:14px; height:14px; left:2px; top:2px; border-radius:50%; background:#fff; box-shadow:0 1px 2px #0002; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open input:checked { background:#b83b35; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open input:checked::after { left:14px; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open:has(input:checked) { background:#fbefed; border-color:#dcb3af; color:#9b302b; }
body .elementor .krg-modern-filters .krg-list-aside .krg-filter-open .krg-count { padding:0; border:0; background:none; color:inherit; font-size:12px; }
.krg-modern-filters .krg-filter-active-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:14px; }
.krg-modern-filters .krg-filter-active-label { color:#736c66; font:400 12px/1.5 "DM Sans",sans-serif; }
.krg-modern-filters .krg-filter-chips { display:flex; flex:1; flex-wrap:wrap; gap:8px; margin:0; }
.krg-modern-filters .krg-filter-chip { display:inline-flex; align-items:center; gap:6px; min-height:36px; border:1px solid #eed3cf; background:#fbefed; color:#9b302b; padding:0 6px 0 12px; border-radius:20px; font:500 12px/1.5 "DM Sans",sans-serif; }
.krg-modern-filters .krg-filter-chip button { width:44px; height:44px; padding:0; border:0; background:transparent; color:#9b302b; font:400 20px/1 sans-serif; border-radius:50%; cursor:pointer; }
.krg-modern-filters .krg-filter-reset { min-height:44px; display:inline-flex; align-items:center; padding:0 4px; color:#9b302b; font:500 13px/1.5 "DM Sans",sans-serif; text-decoration:underline; text-underline-offset:3px; }
.krg-modern-filters .krg-filter-status-quiet { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.krg-modern-filters .krg-filter-status.is-empty { border:1px solid #ecd6ce; background:#fcf5f0; color:#795145; padding:16px; border-radius:12px; margin:14px 0 0; font:400 14px/1.6 "DM Sans",sans-serif; }
body .elementor .krg-modern-filters .krg-list-toolbar { margin:0 0 24px; padding:0 0 18px; border-bottom:1px solid #e9e6e3; }
body .elementor .krg-modern-filters:not(.is-list) .v2-area-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.krg-filter-mobile-bar { display:none; }
.krg-filter-dialog { box-sizing:border-box; width:min(580px,calc(100vw - 32px)); }
@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; }
}

/* Mobile navigation: stable bar, brief page crossfade, and immediate tap feedback. */
body nav#krg-mobile-navigation.krg-uniform-bottomnav .v2-icon[data-nav-key="restaurants"]::before { content:none !important; }
body nav#krg-mobile-navigation.krg-uniform-bottomnav .v2-icon[data-nav-key="restaurants"] svg { display:block !important; width:20px !important; height:20px !important; }
@media (max-width:767px) {
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink { -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:color 140ms ease,background-color 140ms ease,transform 140ms ease; }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink:active { background:#fbefed !important; transform:scale(.96); }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav .v2-icon { transition:transform 140ms ease; }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a[aria-current="page"] .v2-icon { transform:translateY(-1px); }
}
@media (max-width:767px) and (prefers-reduced-motion:no-preference) {
 @view-transition { navigation:auto; }
 body nav#krg-mobile-navigation { view-transition-name:mobile-navigation; }
 ::view-transition-group(root),::view-transition-old(root),::view-transition-new(root) { animation-duration:180ms; animation-timing-function:ease-out; }
 ::view-transition-group(mobile-navigation),::view-transition-new(mobile-navigation) { animation:none; }
 ::view-transition-old(mobile-navigation) { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 @view-transition { navigation:none; }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink,body nav#krg-mobile-navigation.krg-uniform-bottomnav .v2-icon { transition:none !important; transform:none !important; }
}

/* A pointer hovering over another mobile tab must not imply two current pages. */
@media(max-width:767px) {
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink:not([aria-current="page"]):hover { background:transparent !important; color:#5d6369 !important; }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink[aria-current="page"] { background:#fbefed !important; color:#b83b35 !important; }
 body nav#krg-mobile-navigation.krg-uniform-bottomnav a.v2-bottomlink:active { background:#fbefed !important; }
}

/* Header saved places: show the heart and count without a visible label. */
body header .v3-saved-open .v3-saved-label { display:none !important; }

/* Align the header language icon and label on one centered row. */
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) .v2-language { align-items:center !important; gap:6px !important; line-height:1 !important; }
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) .v2-language > .v2-icon { width:16px !important; height:16px !important; flex:0 0 16px !important; line-height:0 !important; }
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) .v2-language > .v2-icon svg { display:block !important; width:16px !important; height:16px !important; }
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) .v2-language > .v2-small { margin:0 !important; padding:0 !important; font-size:14px !important; line-height:16px !important; }

/* Restaurant listing: remove the extra controls row above the city sections. */
body .krg-list-layout .krg-list-toolbar,
body .krg-list-layout .krg-list-aside-title { display:none !important; }
@media (min-width:768px) {
 body .krg-list-layout .krg-list-aside { margin-top:28px !important; }
}
@media (max-width:767px) {
 body .krg-list-layout .krg-list-aside { margin-top:0 !important; }
}

/* Align the restaurant heading with the first filter label on desktop. */
@media (min-width:768px) {
 body .krg-list-layout .krg-list-main { padding-top:16px !important; }
}
/* Restaurant column alignment revision: 16px desktop offset. */

/* Keep the outgoing document until the next page is prepared, without a double-image crossfade. */
@media (prefers-reduced-motion:no-preference) {
 @view-transition { navigation:auto; }
}
::view-transition-group(root),::view-transition-old(root),::view-transition-new(root) {
 animation:none !important;
 mix-blend-mode:normal;
}
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) { view-transition-name:site-header; }
::view-transition-group(site-header),::view-transition-new(site-header),
::view-transition-group(mobile-navigation),::view-transition-new(mobile-navigation) { animation:none !important; }
::view-transition-old(site-header),::view-transition-old(mobile-navigation) { display:none !important; }
@media (prefers-reduced-motion:reduce) {
 @view-transition { navigation:none; }
}

/* Mobile menu: quiet touch feedback and visible keyboard focus. */
body header#krg-site-navigation .krg-menu-toggle,
dialog#krg-navigation-dialog :is(a,button) {
 -webkit-tap-highlight-color: transparent;
 touch-action: manipulation;
}
body header#krg-site-navigation .krg-menu-toggle:focus:not(:focus-visible),
dialog#krg-navigation-dialog :is(a,button):focus:not(:focus-visible) {
 outline: none !important;
 box-shadow: none !important;
}
body header#krg-site-navigation .krg-menu-toggle:focus-visible {
 outline: 2px solid #b83b35 !important;
 outline-offset: 2px;
}
body header#krg-site-navigation .krg-menu-toggle .krg-nav-glyph {
 transition: transform 140ms ease;
}
body header#krg-site-navigation .krg-menu-toggle:active .krg-nav-glyph {
 transform: scale(.9);
}
@media(prefers-reduced-motion: reduce) {
 body header#krg-site-navigation .krg-menu-toggle .krg-nav-glyph { transition: none; }
}

/* Navigation interaction revision 2. */

/* Map uses the same current breadcrumb color and weight from its first paint. */
body.page-id-13 main .v2-crumb a[href$="/en/map/"] { color:var(--krg-ink,#171a1d); font-weight:600; }

/* BapNavi: the shorter name is a single-line wordmark throughout the shared shell. */
body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) :is(.v2-brand-text,:is(.v2-brand,.krg-plain-brand) p,.krg-plain-brand span) {
 display:block !important;
 text-transform:none !important;
 font:800 1.375rem/1.2 'DM Sans',sans-serif !important;
 letter-spacing:-.04em !important;
 color:var(--krg-ink,#171a1d) !important;
 white-space:nowrap !important;
}
body .krg-footer-logo,body .krg-plain-brand {
 font:800 1.375rem/1.2 'DM Sans',sans-serif !important;
 text-transform:none !important;
 letter-spacing:-.04em !important;
 white-space:nowrap;
}
dialog#krg-navigation-dialog .krg-navigation-brand span {
 font:800 1.25rem/1.2 'DM Sans',sans-serif;
 text-transform:none;
 letter-spacing:-.04em;
}
@media(max-width:767px) {
 body header:is(#krg-site-navigation,.v2-header,.krg-plain-header) :is(.v2-brand-text,:is(.v2-brand,.krg-plain-brand) p,.krg-plain-brand span) {
  font-size:1.25rem !important;
 }
}
