:root { --koc-accent:      #1a6fb5;
--koc-accent-dark: #125091;
--koc-premium:     #d4a017;
--koc-border:      rgba(0,0,0,.14);
--koc-border-in:   rgba(0,0,0,.28);
--koc-bg-form:     #fff;
--koc-bg-input:    #f5f7fa;
--koc-bg-subtle:   rgba(0,0,0,.04);
--koc-muted:       rgba(0,0,0,.55);
--koc-radius:      8px;
--koc-shadow:      0 2px 16px rgba(0,0,0,.10);
} @media (prefers-color-scheme: dark) {
.koc-wrap {
--koc-border:    rgba(255,255,255,.18);
--koc-border-in: rgba(255,255,255,.28);
--koc-bg-form:   rgba(255,255,255,.03);
--koc-bg-input:  rgba(255,255,255,.06);
--koc-bg-subtle: rgba(255,255,255,.06);
--koc-muted:     rgba(255,255,255,.55);
--koc-shadow:    0 2px 8px rgba(0,0,0,.45);
}
}
body.dark-bg .koc-wrap {
--koc-border:    rgba(255,255,255,.18);
--koc-border-in: rgba(255,255,255,.28);
--koc-bg-form:   rgba(255,255,255,.03);
--koc-bg-input:  rgba(255,255,255,.06);
--koc-bg-subtle: rgba(255,255,255,.06);
--koc-muted:     rgba(255,255,255,.55);
--koc-shadow:    0 2px 8px rgba(0,0,0,.45);
} .koc-wrap {
font-family: inherit;
color: inherit;
padding-bottom: 1rem;
} .koc-filters {
background: var(--koc-bg-form);
border: 1px solid var(--koc-border);
border-radius: var(--koc-radius);
margin-bottom: 12px;
box-shadow: var(--koc-shadow); }
.koc-filters-header {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
background: var(--koc-bg-subtle);
border-radius: var(--koc-radius) var(--koc-radius) 0 0;
}
.koc-filters-toggle {
display: flex;
align-items: center;
gap: 6px;
background: none;
border: 1px solid var(--koc-border);
border-radius: 6px;
padding: 6px 12px;
cursor: pointer;
font-size: 14px;
font-weight: 600;
color: inherit;
transition: background .15s;
}
.koc-filters-toggle:hover { background: var(--koc-bg-subtle); }
.koc-active-count {
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--koc-accent);
color: #fff;
border-radius: 50%;
width: 20px;
height: 20px;
font-size: 11px;
font-weight: 700;
}
.koc-btn-locate {
margin-left: auto;
background: none;
border: 1px solid var(--koc-border);
border-radius: 6px;
padding: 6px 10px;
cursor: pointer;
color: var(--koc-accent);
font-size: 14px;
display: flex;
align-items: center;
gap: 4px;
transition: background .15s;
}
.koc-btn-locate:hover { background: rgba(26,111,181,.1); }
.koc-btn-locate.koc-locating { opacity: .6; pointer-events: none; }
.koc-filters-body {
padding: 14px;
display: flex;
flex-direction: column;
gap: 12px;
border-top: 1px solid var(--koc-border);
}
.koc-filter-row { display: flex; flex-direction: column; gap: 6px; }
.koc-filter-label {
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .04em;
color: inherit;
}
.koc-filter-input {
width: 100%;
padding: 8px 12px;
border: 1px solid var(--koc-border-in);
border-radius: 6px;
font-size: 14px;
background: var(--koc-bg-input);
color: inherit;
box-sizing: border-box;
font-family: inherit;
transition: border-color .15s;
outline: none;
}
.koc-filter-input::placeholder { color: inherit; opacity: .4; }
.koc-filter-input:focus {
border-color: var(--koc-accent);
box-shadow: 0 0 0 2px rgba(26,111,181,.15);
} .koc-filter-location { position: relative; }
.koc-location-suggestions[hidden] { display: none; }
.koc-location-suggestions {
position: absolute;
top: calc(100% + 2px);
left: 0; right: 0;
background: Canvas;
color: CanvasText;
border: 1px solid var(--koc-accent);
border-radius: var(--koc-radius);
box-shadow: 0 4px 16px rgba(0,0,0,.2);
z-index: 1001;
overflow: hidden;
}
.koc-location-suggestion {
padding: 9px 14px;
font-size: 13px;
cursor: pointer;
color: CanvasText;
}
.koc-location-suggestion:hover,
.koc-location-suggestion--active { background: rgba(128,128,128,.1); }
.koc-location-suggestion strong { display: block; font-weight: 600; font-size: 14px; }
.koc-location-suggestion span { opacity: .65; } .koc-distance-row { display: flex; align-items: center; gap: 8px; }
.koc-unit { color: inherit; font-size: 13px; } .koc-cat-dropdown { position: relative; }
.koc-cat-toggle {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 8px 12px;
background: var(--koc-bg-input);
border: 1px solid var(--koc-border-in);
border-radius: 6px;
cursor: pointer;
font-size: 14px;
color: inherit;
font-family: inherit;
text-align: left;
transition: border-color .15s;
}
.koc-cat-toggle:hover,
.koc-cat-toggle[aria-expanded="true"] { border-color: var(--koc-accent); } .koc-cat-list {
position: absolute;
top: calc(100% + 4px);
left: 0;
right: 0;
background: Canvas;
color: CanvasText;
border: 1px solid var(--koc-accent);
border-radius: var(--koc-radius);
box-shadow: 0 4px 16px rgba(0,0,0,.2);
z-index: 1000;
max-height: 300px;
overflow-y: auto;
padding: 6px 0;
}
.koc-cat-label {
display: flex;
align-items: center;
gap: 8px;
padding: 7px 14px;
font-size: 14px;
cursor: pointer;
user-select: none;
color: CanvasText;
}
.koc-cat-label:hover { background: rgba(128,128,128,.1); }
.koc-cat-child      { padding-left: 28px; }
.koc-cat-grandchild { padding-left: 44px; }
.koc-cat-expand {
margin-left: auto;
background: none;
border: none;
cursor: pointer;
font-size: 33px;
line-height: 1;
color: inherit;
padding: 0 2px;
}
.koc-cat-children { border-left: 2px solid var(--koc-border); margin-left: 14px; } .koc-filter-actions { display: flex; justify-content: flex-end; }
.koc-btn-reset {
background: none;
border: 1px solid rgba(200,0,0,.5);
color: inherit;
border-radius: 6px;
padding: 6px 14px;
cursor: pointer;
font-size: 13px;
transition: all .15s;
}
.koc-btn-reset:hover { background: rgba(200,0,0,.1); border-color: #c00; } .koc-view-bar {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
}
.koc-view-tabs { display: flex; gap: 4px; }
.koc-view-tab {
display: flex;
align-items: center;
gap: 5px;
padding: 7px 14px;
border: 1px solid var(--koc-border);
background: inherit;
border-radius: 6px;
cursor: pointer;
font-size: 14px;
color: inherit;
opacity: .7;
transition: all .15s;
font-family: inherit;
}
.koc-view-tab:hover { opacity: 1; border-color: var(--koc-accent); }
.koc-view-tab.active {
background: var(--koc-accent);
color: #fff;
border-color: var(--koc-accent);
opacity: 1;
}
.koc-count {
margin-left: auto;
font-size: 13px;
color: inherit;
} .koc-list-items {
display: flex;
flex-direction: column;
gap: 12px;
}
.koc-list-items.koc-loading { opacity: .5; pointer-events: none; }
.koc-list-empty {
padding: 40px;
text-align: center;
color: inherit;
border: 2px dashed var(--koc-border);
border-radius: var(--koc-radius);
}
.koc-card {
display: flex;
background: inherit;
border: 1px solid var(--koc-border);
border-radius: var(--koc-radius);
overflow: hidden;
transition: box-shadow .15s, border-color .15s;
color: inherit;
text-decoration: none;
}
.koc-card:hover { box-shadow: var(--koc-shadow); border-color: var(--koc-accent); }
.koc-card--premium {
border-color: var(--koc-premium);
box-shadow: 0 0 0 1px var(--koc-premium);
}
.koc-card-thumb { flex-shrink: 0; width: 20%; align-self: stretch; overflow: hidden; }
.koc-card-thumb img { width: auto; height: 100%; object-fit: cover; display: block; }
.koc-card-body {
display: flex;
flex-direction: column;
gap: 4px;
padding: 12px 16px;
flex: 1;
min-width: 0;
}
.koc-card-premium-badge {
display: inline-block;
font-size: 11px;
font-weight: 700;
color: var(--koc-premium);
background: rgba(212,160,23,.12);
border: 1px solid var(--koc-premium);
border-radius: 4px;
padding: 1px 7px;
align-self: flex-start;
}
.koc-card-title {
font-size: 16px;
font-weight: 700;
color: inherit;
text-decoration: none;
}
.koc-card-title:hover { color: var(--koc-accent); }
.koc-card-cats { display: flex; flex-wrap: wrap; gap: 4px; }
.koc-card-cat {
font-size: 11px;
background: rgba(26,111,181,.12);
color: var(--koc-accent);
border-radius: 4px;
padding: 2px 8px;
}
.koc-card-addr, .koc-card-excerpt {
font-size: 13px;
color: inherit;
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.koc-card-addr .dashicons { font-size: 13px; width: 13px; height: 13px; }
.koc-card-contacts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.koc-card-contact {
display: flex;
align-items: center;
gap: 4px;
font-size: 12px;
color: inherit;
text-decoration: none;
}
.koc-card-contact .dashicons { font-size: 13px; width: 13px; height: 13px; }
.koc-card-more {
margin-top: auto;
font-size: 13px;
font-weight: 600;
color: var(--koc-accent);
text-decoration: none;
align-self: flex-start;
}
.koc-card-more:hover { text-decoration: underline; } .koc-list-more { margin-top: 16px; text-align: center; }
.koc-btn-more {
padding: 10px 28px;
background: inherit;
border: 1px solid var(--koc-accent);
color: var(--koc-accent);
border-radius: 6px;
cursor: pointer;
font-size: 14px;
font-weight: 600;
font-family: inherit;
transition: all .15s;
}
.koc-btn-more:hover { background: var(--koc-accent); color: #fff; } .koc-list-pagination[hidden] { display: none; }
.koc-list-pagination {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 4px;
padding: 14px 12px;
border-top: 1px solid var(--koc-border);
}
.koc-page-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 34px;
height: 34px;
padding: 0 6px;
border: 1px solid var(--koc-border);
border-radius: 6px;
background: inherit;
color: inherit;
font-size: 14px;
font-family: inherit;
cursor: pointer;
transition: background .15s, border-color .15s, color .15s;
line-height: 1;
}
.koc-page-btn:hover:not(:disabled):not(.active) {
border-color: var(--koc-accent);
color: var(--koc-accent);
}
.koc-page-btn.active {
background: var(--koc-accent);
border-color: var(--koc-accent);
color: #fff;
font-weight: 700;
cursor: default;
}
.koc-page-btn:disabled {
opacity: .3;
cursor: default;
}
.koc-page-arrow {
font-size: 18px;
font-weight: 700;
}
.koc-page-ellipsis {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 28px;
height: 34px;
font-size: 14px;
color: inherit;
user-select: none;
} .koc-map-area {
position: relative;
isolation: isolate;
}
.koc-map-canvas {
width: 100%;
border-radius: var(--koc-radius);
overflow: hidden;
border: 1px solid var(--koc-border);
}
@media (max-width: 640px) {
.koc-map-canvas { max-height: 70vh; }
} .koc-gesture-hint {
position: absolute;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0,0,0,.52);
color: #fff;
font-size: .95rem;
font-weight: 600;
text-align: center;
padding: 1.5rem;
pointer-events: none;
opacity: 0;
transition: opacity .2s;
border-radius: var(--koc-radius);
}
.koc-gesture-hint--visible { opacity: 1; } .koc-popup { max-width: 240px; }
.koc-popup-img { width: 100%; height: 120px; object-fit: cover; border-radius: 4px; margin-bottom: 6px; display: block; }
.koc-popup-body { display: flex; flex-direction: column; gap: 3px; }
.koc-popup-premium { font-size: 11px; font-weight: 700; color: var(--koc-premium); }
.koc-popup-title { font-size: 14px; font-weight: 700; color: inherit; text-decoration: none; }
.koc-popup-title:hover { color: var(--koc-accent); }
.koc-popup-addr, .koc-popup-cats { font-size: 12px; color: inherit; margin: 0; }
.koc-popup-link {
margin-top: 4px;
display: inline-block;
font-size: 12px;
font-weight: 600;
color: var(--koc-accent);
text-decoration: none;
}
.koc-popup-link:hover { text-decoration: underline; } .koc-cluster {
width: 42px;
height: 42px;
border-radius: 50%;
background: var(--koc-accent);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: 700;
box-shadow: 0 2px 6px rgba(0,0,0,.3);
border: 3px solid rgba(255,255,255,.6);
} @media (max-width: 640px) {
.koc-card-thumb { width: 25%; }
} .koc-wrap--split .koc-panels {
display: flex;
gap: 1rem;
align-items: flex-start;
}
.koc-wrap--split .koc-list-panel {
flex: 0 0 38%;
min-width: 0;
}
.koc-wrap--split .koc-map-area {
flex: 1;
min-width: 0;
}
.koc-wrap--split .koc-card {
cursor: pointer;
}
.koc-wrap--split .koc-card:hover {
border-color: var(--koc-accent);
box-shadow: 0 2px 10px rgba(26,111,181,.18);
} @media (max-width: 700px) {
#koc-tab-split { display: none; }
}