.ocbs-wrap{
  max-width:100%;
}

.ocbs-card{
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:22px;
  box-shadow:0 2px 10px rgba(0,0,0,.03);
  padding:24px;
  margin:0 0 22px;
}

.ocbs-headline{
  margin:0 0 22px;
  font-size:clamp(28px, 3.2vw, 40px);
  line-height:1.12;
  color:#1a1a1a;
  font-weight:800;
}

.ocbs-form{
  display:block;
}

.ocbs-grid{
  display:grid;
  grid-template-columns:minmax(280px,2.2fr) repeat(4, minmax(150px,1fr)) 170px;
  gap:14px;
  align-items:end;
}

.ocbs-grid.ocbs-grid--map{
  grid-template-columns:minmax(240px,1.8fr) minmax(110px,.8fr) minmax(160px,.9fr) minmax(180px,1fr) minmax(180px,1fr) minmax(220px,1.4fr) minmax(110px,.7fr) 170px;
}

.ocbs-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ocbs-field label,
.ocbs-sortbar label{
  font-size:14px;
  line-height:1.2;
  font-weight:700;
  color:#2a2a2a;
}

.ocbs-field input,
.ocbs-field select,
.ocbs-sortbar select{
  width:100%;
  min-height:56px;
  border:1px solid #d8d8d8;
  border-radius:14px;
  background:#fff;
  padding:0 16px;
  font-size:17px;
  color:#1f2937;
  box-sizing:border-box;
}

.ocbs-field input::placeholder{
  color:#a7a7a7;
}

.ocbs-btn{
  width:100%;
  min-height:58px;
  border:none;
  border-radius:16px;
  background:#ef0d0d;
  color:#fff;
  font-size:24px;
  font-weight:800;
  cursor:pointer;
  transition:transform .12s ease, opacity .12s ease;
}

.ocbs-btn:hover{
  opacity:.94;
  transform:translateY(-1px);
}

.ocbs-sortbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  margin-top:16px;
}

.ocbs-sortbar select{
  max-width:260px;
  min-height:48px;
}

.ocbs-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px;
}

.ocbs-result-count{
  font-size:15px;
  font-weight:700;
  color:#444;
}

.ocbs-reset{
  color:#111;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
}

.ocbs-reset:hover{
  text-decoration:underline;
}

.ocbs-company-title{
  margin:0 0 18px;
  font-size:24px;
  line-height:1.25;
  font-weight:700;
}

.ocbs-company-title a{
  color:#e2b800;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}

.ocbs-kv{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:10px 24px;
  font-size:18px;
  line-height:1.45;
  color:#1f2937;
}

.ocbs-key{
  font-weight:800;
  color:#111827;
}

.ocbs-excerpt{
  margin-top:18px;
  font-size:17px;
  line-height:1.65;
  color:#3f3f46;
}

.ocbs-excerpt p:last-child{
  margin-bottom:0;
}

.ocbs-empty p{
  margin:0;
  font-size:17px;
}

@media (max-width:1280px){
  .ocbs-grid,
  .ocbs-grid.ocbs-grid--map{
    grid-template-columns:repeat(3, minmax(180px,1fr));
  }

  .ocbs-field--submit{
    grid-column:1 / -1;
  }

  .ocbs-btn{
    max-width:320px;
  }
}

@media (max-width:782px){
  .ocbs-card{
    padding:18px;
    border-radius:18px;
  }

  .ocbs-grid,
  .ocbs-grid.ocbs-grid--map{
    grid-template-columns:1fr;
  }

  .ocbs-sortbar,
  .ocbs-meta-row{
    flex-direction:column;
    align-items:flex-start;
  }

  .ocbs-kv{
    grid-template-columns:1fr;
    gap:6px;
  }

  .ocbs-company-title{
    font-size:21px;
  }

  .ocbs-field input,
  .ocbs-field select,
  .ocbs-sortbar select,
  .ocbs-btn{
    min-height:52px;
    font-size:16px;
  }

  .ocbs-btn{
    font-size:21px;
  }
}
