/* Discovery controls and directly selectable, distributed category markers. */
.kf-landscape__body { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:center; gap:30px; }
.kf-landscape__visual,.kf-landscape__selection { min-width:0; }
.kf-map-surface { background:#eef4f3; border-radius:24px; overflow:hidden; }
.kf-landscape__art { width:100%; height:auto; border-radius:0; }
.kf-landscape__tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 22px; }
.kf-landscape__cities { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.kf-landscape__cities button { display:flex; align-items:center; gap:7px; min-height:40px; border:1px solid transparent; border-radius:999px; padding:8px 13px; background:transparent; color:var(--kf-muted); font:750 11px var(--font-sans); cursor:pointer; }
.kf-landscape__cities button[aria-pressed=true] { background:#fff; border-color:#d4ded8; color:var(--kf-ink); }
.kf-landscape__cities button:hover { color:var(--kf-ink); }
.kf-landscape__cities [data-city-count] { padding:2px 5px; background:#e9eee8; border-radius:6px; font-size:9px; font-variant-numeric:tabular-nums; }
.kf-landscape__search { display:flex; align-items:center; gap:8px; width:290px; min-height:44px; border:1px solid #d8dfd6; border-radius:999px; background:#fff; padding:0 15px; color:var(--kf-muted); }
.kf-landscape__search input { min-width:0; width:100%; border:0; border-radius:999px; outline:none; background:transparent; padding:10px 0; font:600 12px var(--font-sans); color:var(--kf-ink); }
.kf-landscape__search:focus-within { border-color:#c48e31; box-shadow:0 0 0 3px #ffab2429; }
.kf-landscape__search input::placeholder { color:#82908a; }
.kf-landscape__selection-head { position:relative; z-index:7; align-items:center; flex-wrap:nowrap; padding:0 16px; margin:0; }
.kf-landscape__scope { font-size:11px; color:var(--kf-muted); margin:7px 0 0; line-height:1.5; }
.kf-landscape__pager { gap:7px; }
.kf-landscape__pager .kf-round { width:40px; height:40px; }
.kf-landscape__clear-area { display:flex; align-items:center; gap:7px; width:max-content; max-width:100%; margin:12px 0 0 16px; padding:8px 12px; min-height:36px; border:1px solid #d6dfd8; border-radius:999px; background:#fff; color:var(--kf-ink); font:750 10px var(--font-sans); cursor:pointer; }
/* Selected product preview. */
.kf-landscape__card-view { margin:20px auto 0; max-width:380px; touch-action:pan-y; }
.kf-landscape__card-view:focus-visible { outline:2px solid var(--kf-orange); outline-offset:4px; border-radius:20px; }
.kf-landscape__card-view .kf-place-card { display:block; }
.kf-landscape__card-view .kf-place-card__photo { aspect-ratio:1.6; height:auto; }
.kf-landscape__card-view .kf-place-card h3 { font-size:22px; }
.kf-landscape__card-view .kf-place-card__excerpt { display:none; }
.kf-landscape__hint { margin:15px 0 0; text-align:center; color:var(--kf-muted); font-size:10px; }
.kf-landscape__empty { padding:55px 24px; text-align:center; border:1px dashed #cdd9d0; border-radius:24px; margin-top:24px; background:#ffffff80; }
.kf-landscape__empty>iconify-icon { font-size:28px; color:#789082; }
.kf-landscape__empty h3 { font:850 23px var(--font-sans); margin:14px 0 8px; }
.kf-landscape__empty p { font-size:12px; color:var(--kf-muted); line-height:1.6; }
.kf-landscape__empty .kf-button { font-size:12px; margin-top:15px; }
.kf-landscape-pin.is-current { box-shadow:0 0 0 5px #ffffffb0,0 5px 15px #06272b35; }
.kf-landscape__fallback { display:flex; flex-wrap:wrap; gap:10px 20px; padding:14px 0; }
.kf-landscape__fallback a { text-decoration:underline; font-size:13px; }
@media(max-width:1100px) {
  .kf-landscape__body { gap:16px; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
  .kf-landscape__selection-head { padding-inline:8px; }
}
@media(max-width:960px) {
  .kf-landscape__body { grid-template-columns:minmax(0,1fr); gap:30px; }
  .kf-landscape__visual { width:100%; max-width:700px; margin-inline:auto; }
  .kf-landscape__selection { width:100%; max-width:600px; margin-inline:auto; }
}
@media(max-width:760px) {
  .kf-landscape__body { display:grid; }
  .kf-landscape__tools { gap:12px; margin-bottom:20px; }
  .kf-landscape__cities { gap:3px; flex-wrap:nowrap; width:100%; overflow-x:auto; padding-bottom:3px; }
  .kf-landscape__cities button { flex-shrink:0; padding:8px 10px; font-size:10px; }
  .kf-landscape__search { width:100%; }
  .kf-map-surface { border-radius:18px; padding-top:22px; }
  .kf-landscape__selection-head { padding-inline:0; }
  .kf-landscape__selection-label { font-size:9px; }
  .kf-landscape__scope { font-size:10px; }
  .kf-landscape__pager .kf-round { width:44px; height:44px; }
  .kf-landscape__pager>span { font-size:10px; }
  .kf-landscape__clear-area { margin-left:0; }
}
/* Separate colored markers. Grouped marker tips rotate toward their shared map anchor. */
.kf-landscape-pin { width:34px; height:34px; transform:translate(-50%,-50%); border:0; border-radius:50%; background:transparent; color:#fff; box-shadow:none; padding:0; }
.kf-landscape-pin__shape { position:absolute; inset:0; display:grid; place-items:center; border:2px solid #fff; border-radius:50% 50% 50% 12%; background:var(--path-color); box-shadow:0 3px 9px #173e2933; transform:rotate(var(--pin-rotation,0deg)); transition:transform .18s ease,box-shadow .2s; pointer-events:none; }
.kf-landscape-pin__shape>iconify-icon { font-size:18px; transform:rotate(var(--pin-icon-rotation,0deg)); transition:transform .18s ease; }
.kf-landscape-pin:hover,.kf-landscape-pin[aria-pressed=true] { scale:1; box-shadow:none; }
.kf-landscape-pin:hover .kf-landscape-pin__shape,.kf-landscape-pin[aria-pressed=true] .kf-landscape-pin__shape { box-shadow:0 0 0 3px #fff,0 3px 10px #173e2940; }
.kf-landscape-pin.is-current { box-shadow:none; }
.kf-landscape-pin.is-current .kf-landscape-pin__shape { box-shadow:0 0 0 3px #ffffffb0,0 3px 10px #173e2930; }
.kf-landscape-pin__count { z-index:2; top:-5px; right:-5px; width:15px; height:15px; font-size:8px; }
.kf-landscape-pin::before { display:none; }
.kf-landscape__card-view .kf-place-card .kf-button { margin-top:18px; }
@media(max-width:760px) {
  .kf-map-surface { padding-top:0; }
  .kf-landscape__selection { max-width:380px; }
  .kf-landscape-pin { width:26px; height:26px; border-width:1.5px; }
  .kf-landscape-pin__shape>iconify-icon { font-size:15px; }
  .kf-landscape-pin__count { width:13px; height:13px; font-size:7px; top:-4px; right:-4px; }
}
