/* Kaliorexi — components added after the base stylesheet: business page, sheets, lightbox, toast, filters. */

/* ---------- Utilities ---------- */
.kx-visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.kx-results-grid label:focus-within { box-shadow: var(--kx-focus-ring); border-radius: 6px; }

/* WordPress admin bar pushes sticky UI down for logged-in editors */
body.admin-bar .kx-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .kx-header { top: 46px; } }
/* Under 601px the admin bar is not fixed (it scrolls away), so nothing needs to clear it */
@media (max-width: 600px) { body.admin-bar .kx-header { top: 0; } }

/* ---------- Sticky chrome: one variable drives every sticky sub-bar ---------- */
:root { --kx-stick: var(--kx-header-h-mobile); --kx-admin-off: 0px; }
@media (min-width: 768px) { :root { --kx-stick: var(--kx-header-h-desktop); } }
@media (min-width: 601px) and (max-width: 782px) { :root { --kx-admin-off: 46px; } }
@media (min-width: 783px) { :root { --kx-admin-off: 32px; } }
body:not(.admin-bar) { --kx-admin-off: 0px; }
/* On phones the header slides away while scrolling down and returns on scroll up (JS toggles the class). */
.kx-header { transition: transform .22s ease; }
@media (max-width: 767px) {
	html.kx-hdr-hidden { --kx-stick: 0px; }
	html.kx-hdr-hidden .kx-header { transform: translateY(-100%); }
}
.kx-results-bar, .kx-biz-aside, .kx-menu-tabs { transition: top .22s ease; }

/* ---------- Switches (real <button role="switch">) ---------- */
.kx-switch { border: 0; padding: 0; display: block; font: inherit; }
.kx-switch.is-disabled { pointer-events: none; }

/* ---------- Toast ---------- */
.kx-toast { position: fixed; left: 50%; bottom: 96px; transform: translate(-50%, 12px); z-index: 120; display: inline-flex; align-items: center; min-height: 52px; padding: 0 18px; border-radius: 12px; background: var(--kx-charcoal); color: #fff; box-shadow: var(--kx-shadow-toast); font: 500 15px var(--kx-font-body); opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s; max-width: calc(100vw - 32px); }
.kx-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 768px) { .kx-toast { bottom: 32px; } }

/* ---------- Results: sticky bar + collapsible filters ---------- */
.kx-results-bar { position: sticky; top: calc(var(--kx-stick) + var(--kx-admin-off) - 1px); z-index: 40; }
/* One compact row on phones: the visible "Ταξινόμηση" label is redundant next to the select */
@media (max-width: 767px) {
	.kx-results-bar { flex-wrap: nowrap !important; padding-top: 8px !important; padding-bottom: 8px !important; }
	.kx-results-bar label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.kx-results-bar select { max-width: 150px; }
	.kx-results-bar nav a { padding: 0 10px !important; }
}
.kx-filters > summary { list-style: none; }
.kx-filters > summary::-webkit-details-marker { display: none; }
.kx-filters__summary { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border: 1px solid var(--kx-sand-dark); border-radius: 10px; background: #fff; font: 600 15px var(--kx-font-body); cursor: pointer; }
.kx-filters[open] > .kx-filters__summary { margin-bottom: 12px; }
@media (min-width: 1024px) { .kx-filters__summary { display: none; } }
@media (max-width: 1023px) { .kx-filters__title { display: none; } }

/* ---------- Lightbox ---------- */
.kx-lightbox { position: fixed; inset: 0; z-index: 110; background: rgba(24,19,16,.96); display: flex; flex-direction: column; color: #fff; }
.kx-lightbox[hidden] { display: none; }
.kx-lightbox__bar { height: 64px; flex: none; display: flex; align-items: center; justify-content: space-between; padding: 0 12px 0 20px; font: 500 15px var(--kx-font-body); }
.kx-lightbox__stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 0 12px 24px; }
.kx-lightbox__stage img { flex: 1; min-width: 0; max-width: 1000px; max-height: 100%; object-fit: contain; border-radius: 12px; }
.kx-lightbox__btn { width: 48px; height: 48px; flex: none; border-radius: 999px; border: 0; background: rgba(255,255,255,.12); color: #fff; font-size: 26px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.kx-lightbox__btn:hover { background: rgba(255,255,255,.22); }

/* ---------- Bottom sheet / modal ---------- */
.kx-sheet { position: fixed; inset: 0; z-index: 100; background: rgba(42,33,28,.5); display: flex; align-items: flex-end; justify-content: center; }
.kx-sheet[hidden] { display: none; }
.kx-sheet__panel { width: 100%; background: #fff; border-radius: 20px 20px 0 0; box-shadow: var(--kx-shadow-sheet); padding: 20px 20px 24px; max-height: 90vh; overflow-y: auto; }
.kx-sheet__close { width: 44px; height: 44px; margin: -6px -10px 0 0; border: 0; border-radius: 999px; background: none; color: var(--kx-charcoal); display: flex; align-items: center; justify-content: center; }
@media (min-width: 768px) {
	.kx-sheet { align-items: center; padding: 24px; }
	.kx-sheet__panel { width: 440px; max-width: 100%; border-radius: 16px; }
}

/* ---------- Business page ---------- */
.kx-biz { max-width: var(--kx-max-width); margin: 0 auto; padding: 0 var(--kx-gutter) 48px; }
.kx-biz-cover { position: relative; margin: 0 calc(-1 * var(--kx-gutter)); }
.kx-biz-cover__img { aspect-ratio: 16 / 9; overflow: hidden; background: repeating-linear-gradient(135deg, #F2E4D3 0 10px, #EEDCC8 10px 20px); }
.kx-biz-logo { position: absolute; left: 16px; bottom: -36px; width: 76px; height: 76px; border-radius: 16px; border: 4px solid #fff; box-shadow: 0 2px 8px rgba(42,33,28,.12); overflow: hidden; display: flex; align-items: center; justify-content: center; font: 800 24px var(--kx-font-heading); }
.kx-biz-ident { padding: 48px 0 16px; display: flex; flex-direction: column; gap: 10px; }
.kx-biz-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.kx-biz-main { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 56px); min-width: 0; padding-top: 8px; }
.kx-biz-offer { background: color-mix(in srgb, var(--kx-biz-accent) 11%, #fff); border-radius: 12px; padding: 18px 20px; display: flex; align-items: center; gap: 16px; }
.kx-biz-offer__icon { width: 48px; height: 48px; border-radius: 12px; background: #fff; color: var(--kx-biz-accent-text); display: flex; align-items: center; justify-content: center; flex: none; }
.kx-menu-tabs { position: sticky; top: calc(var(--kx-stick) + var(--kx-admin-off) + var(--kx-aside-h, 73px) - 2px); z-index: 30; background: var(--kx-cream); margin: 0 calc(-1 * var(--kx-gutter)); padding: 0 var(--kx-gutter); border-bottom: 1px solid var(--kx-sand); display: flex; gap: 24px; overflow-x: auto; scrollbar-width: none; }
.kx-menu-tabs a { flex: none; display: inline-flex; align-items: center; height: 52px; border-bottom: 3px solid transparent; margin-bottom: -1px; font: 600 15px var(--kx-font-body); color: var(--kx-stone); }
.kx-menu-tabs a:hover, .kx-menu-tabs a:focus-visible { color: var(--kx-charcoal); border-bottom-color: var(--kx-biz-accent); }
.kx-menu-section-block { padding-top: 20px; scroll-margin-top: 190px; }
.kx-biz-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 120px; gap: 8px; }
.kx-biz-gallery__item { position: relative; display: block; border-radius: 10px; overflow: hidden; background: repeating-linear-gradient(135deg, #F2E4D3 0 8px, #EEDCC8 8px 16px); cursor: zoom-in; }
.kx-biz-gallery__item[hidden] { display: none; }
.kx-biz-gallery__item:first-child { grid-row: span 2; }
.kx-biz-gallery__more { position: absolute; inset: 0; background: rgba(42,33,28,.6); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 22px/1.3 var(--kx-font-heading); }

/* Actions: sticky bar on mobile, card on desktop */
.kx-biz-aside { order: -1; position: sticky; top: calc(var(--kx-stick) + var(--kx-admin-off) - 1px); z-index: 35; margin: 0 calc(-1 * var(--kx-gutter)); background: var(--kx-cream); border-bottom: 1px solid var(--kx-sand); }
.kx-biz-actions { display: flex; gap: 6px; padding: 10px var(--kx-gutter); }
.kx-biz-call { flex: 1; height: 52px; background: var(--kx-biz-accent); color: var(--kx-biz-ink); font-size: 16px; }
.kx-biz-call:hover { filter: brightness(.92); color: var(--kx-biz-ink); }
.kx-biz-call__num { display: none; }
.kx-biz-actions__row { display: flex; gap: 6px; }
.kx-biz-action { width: 66px; height: 52px; border-radius: 10px; border: 1px solid var(--kx-sand); background: #fff; color: var(--kx-charcoal); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 0; font: 500 11px/1 var(--kx-font-body); }
.kx-biz-actions__meta { display: none; }
@media (min-width: 768px) {
	.kx-biz-cover { margin: 24px 0 0; }
	.kx-biz-cover__img { aspect-ratio: 1200 / 380; border-radius: 16px; }
	.kx-biz-logo { left: 32px; bottom: -48px; width: 112px; height: 112px; font-size: 34px; }
	.kx-biz-ident { padding: 64px 0 24px; }
	.kx-biz-grid { grid-template-columns: minmax(0, 1fr) 360px; }
	.kx-menu-tabs { top: calc(var(--kx-stick) + var(--kx-admin-off) - 1px); margin: 0; padding: 0; }
	.kx-biz-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 150px; }
	.kx-biz-gallery__item:first-child { grid-column: span 2; }
	.kx-biz-aside { order: 0; top: 96px; margin: 0; background: none; border: 0; }
	.kx-biz-actions { flex-direction: column; gap: 14px; padding: 20px; background: #fff; border: 1px solid var(--kx-sand); border-radius: 12px; box-shadow: var(--kx-shadow-card); }
	.kx-biz-call { flex: none; width: 100%; }
	.kx-biz-call__num { display: inline; }
	.kx-biz-actions__row { display: grid; gap: 8px; }
	.kx-biz-action { width: auto; height: 64px; border: 1.5px solid var(--kx-biz-accent-text); color: var(--kx-biz-accent-text); font: 600 13px var(--kx-font-body); gap: 4px; }
	.kx-biz-action:hover { background: color-mix(in srgb, var(--kx-biz-accent) 11%, #fff); }
	.kx-biz-actions__meta { display: flex; flex-direction: column; gap: 14px; }
}
/* ---- Slider (cities) ---- */
.kx-slider{position:relative}
.kx-slider__track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.kx-slider__track::-webkit-scrollbar{display:none}
.kx-city-card{flex:0 0 auto;width:168px;scroll-snap-align:start;display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:#fff;border:1px solid var(--kx-sand);border-radius:12px;box-shadow:var(--kx-shadow-card-sm);color:var(--kx-ink);text-decoration:none;transition:border-color .15s,transform .15s}
.kx-city-card:hover{border-color:var(--kx-paprika);transform:translateY(-2px)}
.kx-city-card__pin{color:var(--kx-paprika);display:flex;margin-bottom:6px}
.kx-city-card__name{font:700 17px/1.25 var(--kx-font-heading)}
.kx-city-card__meta{font:400 13px var(--kx-font-body);color:var(--kx-stone)}
.kx-slider__btn{display:none;position:absolute;top:calc(50% - 26px);width:40px;height:40px;border-radius:50%;border:1px solid var(--kx-sand-dark);background:#fff;color:var(--kx-ink);align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--kx-shadow-card-sm);z-index:2;padding:0}
.kx-slider__btn:disabled{opacity:0;pointer-events:none}
.kx-slider__btn--prev{left:-14px}
.kx-slider__btn--prev svg{transform:rotate(180deg)}
.kx-slider__btn--next{right:-14px}
@media (hover:hover) and (min-width:768px){.kx-slider.is-scrollable .kx-slider__btn{display:flex}}

/* ---- Search dropdown extras ---- */
.kx-search-dropdown__text small{display:block;font:400 12px var(--kx-font-body);color:var(--kx-stone)}
.kx-search-dropdown__empty{padding:12px 16px;font:400 14px var(--kx-font-body);color:var(--kx-stone)}
#kx-search-dropdown-list{max-height:320px;overflow-y:auto}

/* ---- Areas page ---- */
.kx-areas-page{max-width:var(--kx-max-width);margin:0 auto;padding:clamp(24px,4vw,48px) var(--kx-gutter) 40px;display:flex;flex-direction:column;gap:32px}
.kx-areas-page__head{display:flex;flex-direction:column;gap:10px;max-width:720px}
.kx-areas-page__head p{margin:0;font:400 17px/1.6 var(--kx-font-body)}
.kx-areas-page__section{display:flex;flex-direction:column;gap:16px}
.kx-areas-page__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.kx-area-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--kx-sand);border-radius:12px;overflow:hidden;box-shadow:var(--kx-shadow-card-sm)}
.kx-area-card__top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:44px 16px 14px;color:#fff;text-decoration:none;background:linear-gradient(to top,rgba(42,33,28,.85),rgba(42,33,28,.1)),repeating-linear-gradient(135deg,#B9825F 0 10px,#A9724F 10px 20px)}
.kx-area-card__name{font:800 24px/1.15 var(--kx-font-heading)}
.kx-area-card__count{font:600 14px var(--kx-font-body)}
.kx-area-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}
.kx-area-card__body p{margin:0;font:400 14px/1.55 var(--kx-font-body)}
.kx-area-card__region{font:600 12px var(--kx-font-body);color:var(--kx-stone);text-transform:uppercase;letter-spacing:.04em}
.kx-areas-page__jump{display:flex;flex-wrap:wrap;gap:8px}
.kx-areas-page__region{padding-top:8px;scroll-margin-top:88px}
.kx-areas-page__region-title{margin:0 0 10px;font:700 18px var(--kx-font-heading)}
.kx-areas-page__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:4px 16px}
.kx-areas-page__list a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--kx-sand);color:var(--kx-ink);text-decoration:none;font:400 15px var(--kx-font-body)}
.kx-areas-page__list a:hover{color:var(--kx-paprika)}
.kx-areas-page__list a.has-shops{font-weight:600}
.kx-areas-page__list a span{font:600 12px var(--kx-font-body);background:var(--kx-paprika);color:#fff;border-radius:999px;padding:1px 8px}
.kx-areas-page__soon{background:#fff;border:1px dashed var(--kx-sand-dark);border-radius:12px;padding:20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.kx-areas-page__soon span{display:flex;flex-direction:column;gap:2px}
.kx-areas-page__soon strong{font:700 17px var(--kx-font-heading)}
.kx-areas-page__soon small{font:400 14px var(--kx-font-body);color:var(--kx-stone)}
.kx-areas-page__soon a{font:600 15px var(--kx-font-body)}

/* ---- Area <select> filter ---- */
.kx-select{width:100%;height:44px;padding:0 12px;border:1px solid var(--kx-sand-dark);border-radius:8px;background:#fff;font:400 15px var(--kx-font-body);color:var(--kx-ink)}

/* ---------- Listing pages (results) ---------- */
.kx-res { max-width: var(--kx-max-width); margin: 0 auto; padding: 0 var(--kx-gutter) 32px; }
.kx-res__head { padding: 16px 0 20px; display: flex; flex-direction: column; gap: 8px; max-width: 760px; }
.kx-res__intro { margin: 0; font: 400 16px/1.6 var(--kx-font-body); }
.kx-res__count { font: 600 14px var(--kx-font-body); color: var(--kx-stone); }
.kx-res__bar { background: var(--kx-cream); margin: 0 calc(-1 * var(--kx-gutter)); padding: 10px var(--kx-gutter); border-bottom: 1px solid var(--kx-sand); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kx-res__sort { display: flex; align-items: center; gap: 8px; }
.kx-res__sort label { display: inline-flex; align-items: center; gap: 6px; font: 400 14px var(--kx-font-body); color: var(--kx-stone); }
.kx-res__sort select { height: 40px; border: 1px solid var(--kx-sand-dark); border-radius: 10px; background: #fff; padding: 0 10px; font: 500 14px var(--kx-font-body); }
.kx-res__views { display: flex; padding: 3px; border-radius: 12px; background: #F3EBE1; }
.kx-res__views a { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border-radius: 9px; color: var(--kx-charcoal); font: 600 14px var(--kx-font-body); }
.kx-res__views a[aria-current="page"] { background: #fff; box-shadow: 0 1px 3px rgba(42,33,28,.12); }
.kx-res__grid { display: grid; grid-template-columns: 1fr; gap: 32px; padding-top: 20px; }
@media (min-width: 1024px) { .kx-res__grid { grid-template-columns: 264px minmax(0, 1fr); } }
.kx-res__aside { display: flex; flex-direction: column; }
.kx-res__list { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.kx-res__label { display: flex; align-items: center; gap: 8px; font: 600 13px var(--kx-font-body); color: var(--kx-stone); text-transform: uppercase; letter-spacing: .06em; }
.kx-res__label--gap { padding-top: 12px; }
.kx-res__map { height: 520px; border-radius: 12px; border: 1px solid var(--kx-sand); overflow: hidden; }
.kx-res__maphint { margin: 8px 0 0; font: 400 13px var(--kx-font-body); color: var(--kx-stone); }
.kx-res__related { display: flex; flex-direction: column; gap: 32px; padding: clamp(40px, 5vw, 64px) 0 clamp(48px, 6vw, 80px); }
.kx-res__related .kx-h3 { font-size: 22px; margin: 0 0 14px; }
.kx-chip-pill__n { font: 600 12px var(--kx-font-body); color: var(--kx-stone); margin-left: 2px; }
.kx-empty-state__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 8px; }

/* Sidebar facets: crawlable links (location / category) and form controls (attributes) */
.kx-facet { display: flex; flex-direction: column; padding: 16px 0 8px; border-bottom: 1px solid var(--kx-sand); }
.kx-facet--block { padding: 16px 0 8px; }
.kx-facet__title { font: 600 13px var(--kx-font-body); color: var(--kx-stone); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.kx-facet__title--big { font: 700 18px/1.3 var(--kx-font-heading); text-transform: none; letter-spacing: 0; color: var(--kx-charcoal); margin: 0; }
.kx-facet__top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 4px; }
.kx-facet__clear { height: 36px; padding: 0 8px; color: var(--kx-paprika); font: 600 14px var(--kx-font-body); display: inline-flex; align-items: center; }
.kx-facet__item { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; padding: 0 8px; margin: 0 -8px; border-radius: 8px; color: var(--kx-charcoal); font: 400 15px var(--kx-font-body); }
.kx-facet__item:hover { background: var(--kx-hover-surface); }
.kx-facet__item.is-current { background: var(--kx-paprika-tint); color: var(--kx-paprika-pressed); font-weight: 600; }
.kx-facet__item small { font: 600 12px var(--kx-font-body); color: var(--kx-stone); }
.kx-facet__more > summary { list-style: none; cursor: pointer; min-height: 40px; display: flex; align-items: center; color: var(--kx-paprika); font: 600 14px var(--kx-font-body); }
.kx-facet__more > summary::-webkit-details-marker { display: none; }
.kx-facet__more[open] > summary { display: none; }
.kx-facet__toggle { display: flex; align-items: center; justify-content: space-between; min-height: 56px; border-bottom: 1px solid var(--kx-sand); cursor: pointer; font: 600 15px var(--kx-font-body); }
.kx-check { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; font: 400 15px var(--kx-font-body); }
.kx-check small { margin-left: auto; font: 600 12px var(--kx-font-body); color: var(--kx-stone); }
.kx-price-pick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding-bottom: 8px; }
.kx-price-pick label { height: 44px; border-radius: 10px; border: 1px solid var(--kx-sand-dark); background: #fff; color: var(--kx-charcoal); font: 700 14px var(--kx-font-body); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.kx-price-pick label.is-on { border: 1.5px solid var(--kx-paprika); background: var(--kx-paprika-tint); color: var(--kx-paprika-pressed); }

/* City + neighbourhood pickers (results filter, wizard, admin) */
.kx-loc { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.kx-loc select:disabled { background: var(--kx-input-disabled-bg); color: var(--kx-disabled-text); cursor: not-allowed; }
@media (min-width: 768px) { .kx-res__aside .kx-loc { flex-direction: column; } }

/* Pagination */
.kx-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; padding-top: 16px; }
.kx-pager a { min-width: 44px; height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--kx-sand-dark); border-radius: 10px; background: #fff; color: var(--kx-charcoal); font: 600 14px var(--kx-font-body); }
.kx-pager a:hover { background: var(--kx-hover-surface); }
.kx-pager a.is-current { background: var(--kx-paprika); border-color: var(--kx-paprika); color: #fff; }
.kx-pager__gap { color: var(--kx-stone); padding: 0 4px; }

/* Business page: linked category/location + breadcrumb */
.kx-biz-links a { color: inherit; text-decoration: underline; text-decoration-color: var(--kx-sand-dark); text-underline-offset: 3px; }
.kx-biz-links a:hover { color: var(--kx-charcoal); text-decoration-color: currentColor; }
.kx-biz-crumbs { padding: 12px 0 0; }

/* Cookie banner: compact on phones so it never covers a third of the screen */
@media (max-width: 767px) {
	.kx-cookie-banner__panel { padding: 14px 16px; gap: 10px; }
	.kx-cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.kx-cookie-banner__actions #kx-cookie-settings-btn { grid-column: 1 / -1; height: 40px; }
	.kx-cookie-banner__actions .kx-btn { height: 44px; }
}

/* ---------- Hierarchy sidebar + extra filters ---------- */
.kx-facet__up { display: flex; align-items: center; gap: 4px; min-height: 40px; color: var(--kx-paprika); font: 600 14px var(--kx-font-body); }
.kx-facet__here { display: block; padding: 8px 0; font: 600 15px var(--kx-font-body); color: var(--kx-paprika-pressed); }
.kx-facet__sub { margin-top: 8px; font: 600 12px var(--kx-font-body); color: var(--kx-stone-faint); text-transform: uppercase; letter-spacing: .05em; }
.kx-cgroup { display: flex; flex-direction: column; margin-top: 6px; }
.kx-facet__item--group { font-weight: 700; }
.kx-facet__item--child { padding-left: 22px; min-height: 36px; font-size: 14px; color: var(--kx-stone); }
.kx-facet__item--child.is-current { color: var(--kx-paprika-pressed); }
.kx-f-search { position: relative; display: flex; align-items: center; }
.kx-f-search svg { position: absolute; left: 12px; color: var(--kx-stone); pointer-events: none; }
.kx-f-search input { width: 100%; height: 44px; padding: 0 12px 0 38px; border: 1px solid var(--kx-sand-dark); border-radius: 10px; background: #fff; font: 400 15px var(--kx-font-body); }
.kx-f-search input:focus { outline: none; border-color: var(--kx-paprika); box-shadow: 0 0 0 4px rgba(200,64,42,.14); }
.kx-active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 0 0; }
.kx-active__chip { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 999px; background: var(--kx-paprika-tint); color: var(--kx-paprika-pressed); font: 600 13px var(--kx-font-body); }
.kx-active__chip:hover { background: var(--kx-paprika-tint-pressed); }
.kx-active__clear { color: var(--kx-stone); font: 600 13px var(--kx-font-body); text-decoration: underline; padding: 0 6px; }
.kx-res__near { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border: 1px solid var(--kx-sand-dark); border-radius: 10px; background: #fff; color: var(--kx-charcoal); font: 600 14px var(--kx-font-body); cursor: pointer; }
.kx-res__near.is-on { border-color: var(--kx-paprika); background: var(--kx-paprika-tint); color: var(--kx-paprika-pressed); }
@media (max-width: 767px) { .kx-res__bar { flex-wrap: wrap !important; } .kx-res__near span { display: none; } .kx-res__near { padding: 0 10px; } }
.kx-row__dist { display: inline-flex; align-items: center; gap: 3px; font: 600 13px var(--kx-font-body); color: var(--kx-stone); }

/* ---------- Save (heart) buttons ---------- */
.kx-card-wrap, .kx-row-wrap { position: relative; }
.kx-card-wrap { height: 100%; display: flex; }
.kx-card-wrap > .kx-card { flex: 1; min-width: 0; }
.kx-save { position: absolute; top: 10px; right: 10px; z-index: 3; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--kx-charcoal); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 1px 4px rgba(42,33,28,.18); }
.kx-save:hover { background: #fff; color: var(--kx-paprika); }
.kx-save.is-on { color: var(--kx-paprika); }
.kx-save.is-on svg { fill: currentColor; }
.kx-row-wrap .kx-save { top: 6px; right: 6px; width: 40px; height: 40px; }
.kx-biz-action.is-on { color: var(--kx-paprika); }
.kx-biz-action.is-on svg { fill: currentColor; }
.kx-nav-saved { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 10px; color: var(--kx-charcoal); }
.kx-nav-saved:hover { background: var(--kx-hover-surface); }
.kx-nav-saved [data-kx-saved-count] { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--kx-paprika); color: #fff; font: 700 11px/18px var(--kx-font-body); text-align: center; }
.kx-nav-saved [data-kx-saved-count][hidden] { display: none; }
.kx-saved-page { max-width: var(--kx-max-width); margin: 0 auto; padding: clamp(24px, 4vw, 48px) var(--kx-gutter) 40px; display: flex; flex-direction: column; gap: 20px; }
.kx-saved-list { display: flex; flex-direction: column; gap: 12px; max-width: 820px; }

/* ---------- Areas page hierarchy ---------- */
.kx-areas-page__find { max-width: 420px; margin-top: 6px; }
.kx-region { border: 1px solid var(--kx-sand); border-radius: 12px; background: #fff; }
.kx-region + .kx-region { margin-top: 10px; }
.kx-region__head { list-style: none; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 16px; cursor: pointer; }
.kx-region__head::-webkit-details-marker { display: none; }
.kx-region__name { font: 700 18px var(--kx-font-heading); }
.kx-region__meta { margin-left: auto; font: 400 14px var(--kx-font-body); color: var(--kx-stone); }
.kx-region__head svg { color: var(--kx-stone); transition: transform .15s; }
.kx-region[open] > .kx-region__head svg { transform: rotate(180deg); }
.kx-region__body { padding: 0 16px 16px; display: flex; flex-direction: column; gap: 12px; }
.kx-areas-page__hoods { display: flex; flex-wrap: wrap; gap: 6px 12px; padding: 2px 0 8px; }
.kx-areas-page__hoods a { font: 400 13px var(--kx-font-body); color: var(--kx-stone); border: 0; padding: 0; text-decoration: underline; text-decoration-color: var(--kx-sand-dark); }
.kx-areas-page__list li[hidden], .kx-region[hidden] { display: none; }
.kx-areas-page__none { margin: 8px 0 0; font: 400 15px var(--kx-font-body); color: var(--kx-stone); }

/* Scroll-snap rows: snap to the content edge, not the scrollport edge (otherwise the first card loses its left gutter) */
.kx-scroller { scroll-padding-left: var(--kx-gutter); }
.kx-slider__track { scroll-padding-left: 2px; }

/* Business actions: 3–4 buttons (Οδηγίες, Delivery, Αποθήκευση, Κοινοποίηση) must sit on one row */
.kx-biz-action { width: 54px; font-size: 11px; }
@media (min-width: 768px) {
	.kx-biz-actions__row { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
	.kx-biz-action { width: auto; font-size: 12px; padding: 0 4px; }
}

/* Heart buttons must never cover text or the PRO / Προτεινόμενο badges */
.kx-row-wrap .kx-row__title-line { padding-right: 40px; }
.kx-row-wrap .kx-row__featured-tag { padding-right: 40px; }
.kx-card-wrap .kx-badge-pro, .kx-card-wrap .kx-badge-featured { right: auto; left: 10px; }

/* Phones: save + share are icon-only so all four actions fit next to the call button */
@media (max-width: 767px) {
	.kx-biz-actions, .kx-biz-actions__row { gap: 4px; }
	.kx-biz-action--icon { width: 44px; }
	.kx-biz-action--icon .kx-biz-action__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.kx-biz-action { width: 54px; }
	.kx-biz-action--icon { width: 44px; }
}

/* ---------- Map view: compact list + sticky map side by side (map first on small screens) ---------- */
.kx-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.kx-split__list { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.kx-split__map { order: -1; }
.kx-split__map .kx-res__map { height: 340px; }
@media (min-width: 1200px) {
	.kx-split { grid-template-columns: 400px minmax(0, 1fr); align-items: start; }
	.kx-split__map { order: 0; position: sticky; top: calc(var(--kx-stick) + var(--kx-admin-off) + 68px); }
	.kx-split__map .kx-res__map { height: calc(100vh - var(--kx-stick) - var(--kx-admin-off) - 150px); min-height: 420px; }
}
.kx-row-wrap.is-active .kx-row { border-color: var(--kx-paprika); box-shadow: var(--kx-shadow-hover); }
.kx-pin-wrap { background: none; border: 0; }
.kx-pin { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 26px; padding: 0 8px; border-radius: 13px; background: var(--kx-stone); color: #fff; font: 700 12px var(--kx-font-body); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(42,33,28,.35); transition: transform .12s; }
.kx-pin--open { background: var(--kx-paprika); }
.kx-pin--paid { box-shadow: 0 0 0 2px var(--kx-honey), 0 2px 6px rgba(42,33,28,.35); }
.kx-pin.is-active { transform: scale(1.25); background: var(--kx-charcoal); z-index: 999; }
.kx-pop { display: flex; flex-direction: column; gap: 2px; min-width: 150px; }
.kx-pop__name { font: 700 15px var(--kx-font-heading); color: var(--kx-charcoal); }
.kx-pop__meta { font: 400 13px var(--kx-font-body); color: var(--kx-stone); }
.kx-pop__st { font: 600 13px var(--kx-font-body); color: var(--kx-stone); }
.kx-pop__st.is-open { color: var(--kx-olive); }

.kx-biz-reviews { display: flex; flex-wrap: wrap; gap: 6px 16px; font: 600 14px var(--kx-font-body); }
.kx-biz-reviews a { display: inline-flex; align-items: center; gap: 6px; color: var(--kx-biz-accent-text, var(--kx-paprika)); text-decoration: underline; text-underline-offset: 3px; }

.kx-res__about { max-width: 760px; display: flex; flex-direction: column; gap: 10px; padding-bottom: 48px; }
.kx-res__about > p { margin: 0 0 6px; font: 400 15px/1.7 var(--kx-font-body); color: var(--kx-stone); }
.kx-faq { border-bottom: 1px solid var(--kx-sand); }
.kx-faq summary { cursor: pointer; min-height: 48px; display: flex; align-items: center; font: 600 15px var(--kx-font-body); list-style: none; }
.kx-faq summary::-webkit-details-marker { display: none; }
.kx-faq summary::after { content: '+'; margin-left: auto; color: var(--kx-stone); font-size: 20px; }
.kx-faq[open] summary::after { content: '–'; }
.kx-faq p { margin: 0 0 14px; font: 400 15px/1.65 var(--kx-font-body); }

.kx-biz-reviews__report { color: var(--kx-stone) !important; font-weight: 400; }
.kx-biz-source { font: 400 12px var(--kx-font-body); color: var(--kx-stone); }

/* ================= Business page: actions, section nav, menu photos, dishes ================= */
.kx-biz-actions__row { display: flex; gap: 4px; }
@media (min-width: 768px) {
	/* one row for however many buttons exist (3 or 4), equal widths */
	.kx-biz-actions__row { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
	.kx-biz-action { width: auto; min-width: 0; padding: 0 2px; font-size: 12px; white-space: nowrap; }
	/* 4 buttons: two per row with icon beside the label, so no label is ever cut */
	.kx-biz-actions__row--4 { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kx-biz-actions__row--4 .kx-biz-action { flex-direction: row; height: 48px; gap: 8px; font-size: 14px; }
}

.kx-biz-quick { margin-top: 4px; }
.kx-biz-book { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 10px; background: var(--kx-biz-accent); color: var(--kx-biz-ink); font: 700 15px var(--kx-font-body); }
.kx-biz-book:hover { filter: brightness(.94); color: var(--kx-biz-ink); }
.kx-biz-book--aside { width: 100%; }
.kx-biz-aside-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 14px var(--kx-font-body); color: var(--kx-biz-accent-text); }
@media (min-width: 768px) { .kx-biz-quick { display: none; } }
@media (max-width: 767px) { .kx-biz-book--aside, .kx-biz-aside-link { display: none; } }

.kx-biz-nav { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 6px calc(-1 * var(--kx-gutter)) 0; padding: 2px var(--kx-gutter); }
.kx-biz-nav::-webkit-scrollbar { display: none; }
.kx-biz-nav a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--kx-sand); background: #fff; color: var(--kx-charcoal); font: 600 14px var(--kx-font-body); }
.kx-biz-nav a:hover, .kx-biz-nav a:focus-visible { border-color: var(--kx-biz-accent-text); color: var(--kx-biz-accent-text); }
@media (min-width: 768px) { .kx-biz-nav { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; flex-wrap: wrap; overflow: visible; } }
.kx-biz-main > section[id], .kx-biz-main > .kx-biz-menu { scroll-margin-top: 150px; }
@media (min-width: 768px) { .kx-biz-main > section[id] { scroll-margin-top: 110px; } }
#reviews { scroll-margin-top: 150px; }

/* photos of the paper menu */
.kx-menu-media { display: flex; flex-direction: column; gap: 12px; margin: 4px 0 12px; }
.kx-menu-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kx-menu-photos[data-count="1"] { grid-template-columns: minmax(0, 340px); }
.kx-menu-photos__item { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 12px; overflow: hidden; border: 1px solid var(--kx-sand); background: #fff; cursor: zoom-in; }
.kx-menu-photos__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kx-menu-photos__zoom { position: absolute; left: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgba(42, 33, 28, .78); color: #fff; font: 600 12px var(--kx-font-body); }
.kx-menu-media__link { align-self: flex-start; gap: 8px; }
@media (min-width: 768px) {
	.kx-menu-photos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.kx-menu-photos[data-count="1"] { grid-template-columns: minmax(0, 280px); }
	.kx-menu-photos[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 240px)); }
	.kx-menu-photos[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* dishes */
.kx-dish { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--kx-sand); align-items: flex-start; }
.kx-dish[hidden] { display: none; }
.kx-dish__body { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kx-dish__name { font: 600 16px/1.35 var(--kx-font-body); }
.kx-dish__desc { font: 400 14px/1.5 var(--kx-font-body); color: var(--kx-stone); }
.kx-dish__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.kx-dish__price { font: 600 16px var(--kx-font-body); margin-top: 4px; }
.kx-dish__photo { flex: none; width: 88px; height: 88px; border-radius: 12px; overflow: hidden; border: 1px solid var(--kx-sand); cursor: zoom-in; background: #F2E4D3; }
.kx-dish__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 768px) { .kx-dish__photo { width: 104px; height: 104px; } }
.kx-menu-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 8px; }
.kx-menu-search { flex: 1 1 220px; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--kx-sand); border-radius: 10px; background: #fff; color: var(--kx-stone); }
.kx-menu-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: 400 16px var(--kx-font-body); color: var(--kx-charcoal); }
.kx-menu-search:focus-within { border-color: var(--kx-biz-accent-text); }
.kx-menu-tag[aria-pressed="true"] { background: var(--kx-biz-accent); color: var(--kx-biz-ink); border-color: var(--kx-biz-accent); }
.kx-menu-empty { margin: 16px 0; font: 400 15px var(--kx-font-body); color: var(--kx-stone); }

/* map card actions */
.kx-map-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.kx-map-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none; cursor: pointer; font: 600 15px var(--kx-font-body); color: var(--kx-biz-accent-text); }

/* Sparse area note (pages under the indexing threshold) */
.kx-seed-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 14px 16px; margin-bottom: 12px; border: 1px dashed var(--kx-honey, #F2B134); border-radius: 12px; background: #FFF6E0; font: 400 15px/1.45 var(--kx-font-body); }
.kx-seed-note strong { font-weight: 700; }
.kx-seed-note span { flex: 1 1 240px; color: var(--kx-stone); }

/* ---- Mobile polish from the 24 Sep audit ---- */
.kx-region__head { padding-top: 10px; padding-bottom: 10px; }
.kx-region__name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.kx-row__body { min-width: 0; }
@media (max-width: 480px) {
	.kx-row { gap: 12px; padding: 10px; }
	.kx-row__media { width: 108px; height: 108px; }
	.kx-row__status-line { flex-wrap: wrap; }
}

/* Photo placeholder: category illustration instead of the word «φωτο» */
.kx-placeholder-photo--icon { align-items: center; justify-content: center; }
.kx-placeholder-photo--icon svg { opacity: .9; }
